bookmark_borderopenssl을 이용한 Tomcat HTTPS 설정

openssl pkcs12 -export -in cert1.pem -inkey privkey1.pem -out keystore.p12 -name tomcat

Enter Export Password:                   #패스워드 입력 (Tomcat설정에 사용됨으로 기억해야 함.)
Verifying – Enter Export Password:   #패스워드확인

Tomcat 설정
  – HTTPS 프로토콜을 제공하기 위한 Connector설정을 server.xml 파일에 추가한다. 

#vi /usr/StorMan/apache-tomcat/conf/server.xml

<Connector 
          port=”8443″ maxThreads=”100″
          scheme=”https” secure=”true” SSLEnabled=”true”
          keystoreFile=/etc/letsencrypt/archive/titorus.com/keystore.p12 keystorePass=“keystore 패스워드” keystoreType=“pkcs12”
          clientAuth=”false” sslProtocol=”TLS”/>
       . . .     

</Service>

bookmark_borderssh와 dd 명령을 이용한 block device 원격복제

1) 로컬에있는 블럭디바이스를 원격(210.220.224.137)으로 복제할때..

# dd if=/dev/sda | ssh 210.220.224.137 “dd of=/dev/sda”

– 다른유저로 사용할때에는 ssh@hostip 형식으로지정한다

2) 원격(210.220.224.137)에있는 블럭디바이스를 로컬에있는 디바이스로 복제할때..

# ssh 192.168.224.137 “dd if= /dev/sda1” | dd of=/dev/vg0/lv01

원격지에 있는 블럭 디바이스를 이미지로 내려받기할때..

#ssh 101.79.1xx.xx -p xxxx “dd if=/dev/sda” | dd of=/home/xxx/disk1/disk6.img

3) 혹시모를 rsh를 이용한 복제예제 (rsh 관련설정은 미리해놓아야함)

# rsh -n 192.168.0.3 dd if=/dev/sda bs=4096 | dd of=/dev/sdb bs=4096

bookmark_borderffmpeg 영상 편집 스크립트

이 스크립트는 영상을 시간별로 자른뒤 병합하고 인코딩한다.

!/bin/bash

#파일 선택 받기
txtname=”vlist”date +%s“.txt”
IFS=$’\n’
for FILE in ls $1
do
let I=I+1
echo “$I) ‘$FILE'”
done

echo -n “파일을 선택 하십시요) “
read FILE_NUM

FILE_NAME=ls $1 | sed -n "$FILE_NUM"p

echo $FILE_NAME

#FILE_NAME=”${FILE_NAME// /}” #파일명 확장자 분리 fileName=”${FILE_NAME%.}” fileName=”${fileName// /}”
fileExtension=”${FILE_NAME##
.}”

#시간 입력 받기
TIME_LIST=()
while :
do
if ((${#TIME_LIST[@]} >0))
then
read -n 1 -p “시간을 추가 하시겠습니까?[y/n]:”
echo
if [[ $REPLY =~ ^[Nn]$ ]]; then
break
fi

fi

echo -e “시작 시간을 를 입력하세요: c “
read sp
TIME_LIST+=($sp)
echo -e “종료 시간을 를 입력하세요: c “
read ep
TIME_LIST+=($ep)

done

echo “###########################################################################################”
echo “##############################영상 자르기를 시작합니다..#########################################”
echo “###########################################################################################”

filecount=1
FILE_LIST=()
for ((i=0;i<${#TIME_LIST[@]};i+=2))
do
SEC1=date +%s -d ${TIME_LIST[$i+1]}
SEC2=date +%s -d ${TIME_LIST[$i]}

timediff=expr ${SEC1} - ${SEC2}
echo “${timediff}”
echo “시작시간: ${TIME_LIST[$i]}”
echo “종료시간: ${TIME_LIST[$i+1]}”
#영상 시간에 따라 분리하기
ffmpeg -i $FILE_NAME -ss ${TIME_LIST[$i]} -t ${timediff} -vcodec copy -acodec copy $fileName”“$filecount”.”$fileExtension FILE_LIST+=($fileName”“$filecount”.”$fileExtension)

files=\'$fileName"_"$filecount"."$fileExtension\'

#파일 인덱스 증가
((filecount++))

done
echo “###########################################################################################”
echo “##############################파일 찹치기를 시작합니다.#########################################”
echo “###########################################################################################”

for ((i=0;i<${#FILE_LIST[@]};i++)) do echo file ${FILE_LIST[$i]}>> $txtname
done

#for %%i in ${FILE_LIST[@]} do echo file ‘%%i’>> mylist.txt
#printf “%s\n” ${FILE_LIST[@]} > vidlist.txt
ffmpeg -f concat -safe 0 -i $txtname -c copy $fileName”_merge.”$fileExtension

#생성한 텍스트 파일 삭제
rm $txtname
#생성한 파트영상 삭제
for ((i=0;i<${#FILE_LIST[@]};i++))
do
rm ${FILE_LIST[$i]}
done

echo “###########################################################################################”
echo “##############################인코딩을 시작합니다.#########################################”
echo “###########################################################################################”

ffmpeg -i $fileName”_merge.”$fileExtension -c:v libx265 -crf 28 -c:a aac -b:a 128k $fileName”_kindtito.”$fileExtension
ffmpeg -i $fileName”_merge.”$fileExtension -max_muxing_queue_size 9999 -threads 16 -c:v libx264 -crf 23 -c:a copy $fileName”_kindtito.”$fileExtension
rm $fileName”_merge.”$fileExtension

bookmark_borderffmpeg로 영상에서 음성 추출하기

#ffmpeg -y -i “영상파일” -vn -acodec libmp3lame -ar 44.1k -ac 2 -ab 320k “출력파일”

 

-y : 출력 파일이 이미 있을 경우에 덮어쓰기 여부

-i : 오디오를 추출할 원본 동영상 파일을 지정할때

-vn: 비디오를 추출할 필요가 없을때 사용

-acodec : 오디오 코덱을 지정할때 사용

-ar 오디오 샘플링 레이트를 지정할때

-ac 오디오 채널 지정

-ab 오디오 bit rate 지정

bookmark_borderXSSFCell 병합

/**
 * 병합 셀을 생성한다.
 * 세로 맞춤 : 가운데
 * 테두리 : 모두
 * @param row
 * @param nStart    시작 셀 인덱스
 * @param nEnd      종료 셀 인덱스
 * @param font      글꼴
 * @param bgColor   배경색
 * @param hAlign    가로 맞춤
 * @param border    테두리
 * @return
 */
private XSSFCell createMergedCell(XSSFRow row, int nStart, int nEnd, Font font, XSSFColor bgColor, short hAlign, short border)
{
    short vAlign = CellStyle.VERTICAL_CENTER;
    
    XSSFCell returnCell = null;
    
    XSSFSheet sheet = row.getSheet();
    XSSFWorkbook wb = sheet.getWorkbook();
    XSSFCellStyle cs = wb.createCellStyle();
    
    //정렬
    cs.setAlignment(hAlign);
    cs.setVerticalAlignment(vAlign);
    
    //테두리 설정
    cs.setBorderTop(border);
    cs.setBorderRight(border);
    cs.setBorderBottom(border);
    cs.setBorderLeft(border);
    
    //글꼴 설정
    cs.setFont(font);
    
    //배경색 설정
    if (bgColor != null)
    {
        cs.setFillForegroundColor(bgColor);
        cs.setFillPattern(CellStyle.SOLID_FOREGROUND);
    }
    
    //셀 생성
    for (int i = nStart; i <= nEnd; i++)
    {
        XSSFCell cell = row.createCell(i);
        
        if (i == nStart)
        {
            returnCell = cell;
        }
        
        cell.setCellStyle(cs);
    }
    
    //병합 영역 설정
    sheet.addMergedRegion(new CellRangeAddress(row.getRowNum(), row.getRowNum(), nStart, nEnd));
    
    return returnCell;
}

출처: http://neopang.tistory.com/entry/POI-이용-Excel-병합-셀-생성 [팡이네]