레이블이 DB인 게시물을 표시합니다. 모든 게시물 표시
레이블이 DB인 게시물을 표시합니다. 모든 게시물 표시

2016년 12월 15일 목요일

mysql(mariadb) 테이블별 mysqldump 백업

디비별 디렉토리를 만들고, 테이블별 .sql 파일을 만든다.
[root@localhost cron.daily]# vim sqlBackup.sh 
#!/bin/bash

_DB_PASS='password'
_BACKUP_DIR='/backup/sqlBackup/'

find $_BACKUP_DIR* -mtime +7 -exec rm -fr {} \; > /dev/null 2>&1

db_list=`echo "show databases;" | mysql -N -uroot -p${_DB_PASS}`
eval `date "+day=%d; month=%m; year=%Y"`

INSTD="$_BACKUP_DIR/sql-backup-$year-$month-$day"
mkdir -p $INSTD

for db in $db_list; do
if [ ! -d $INSTD/$db ]
then
mkdir $INSTD/$db
fi
table_list=`echo "show tables" | mysql -N -uroot -p${_DB_PASS} $db`
for table in $table_list; do
mysqldump -uroot -p${_DB_PASS} --lock-all-table --opt --quick --quote-names $db $table > $INSTD/$db/${table}.sql
done
done

2016년 5월 21일 토요일

Talend Open Studio(TOS) 암호화, 복호화.

TOS를 사용해서 DB 데이터를 contexts로 저장 하였다. contexts로 exprot 하면 해당 내용들이 파일로 저장되기 때문에, 몇몇개의 값 때문에 다시 빌드 하지 않아도 된다.

일종의 설정파일이다.

문제는 type을 password로 지정하면 암호화가 되는 데, 파일의 내용을 수정할 수가 없다.

이렇게 되면 패스워드 때문에 다시 빌드를 실행해야 되기 때문에 contexts로 만든 의미가 없어진다.

물론 String으로 바꿔서 저장하면 되지만 clear text로 저장되는 건 조금 꺼림칙하다.

db 접속을 위해서는 복호화가 가능 해야 하지 않을 까 생각했더니, 역시나 복호화가 가능하다.

TOS 소스 자체는 오픈되어 있고, github에서 볼 수 있다.

PasswordEncryptUtil.java 부분에 encryptPassword, decryptPassword가 있는데,

이 부분을 가져다 사용해서 간단한 프로그램으로 만들어 놓으면, 다시 빌드해야 하는 번거로움은 덜 수 있다.