シェルの設置

全てのDBのdumpファイルを保存

vi /root/bin/backup_all-databases.sh

#!/bin/sh

# 48時間 経過したファイルは削除
find /root/var/mysqldump/ -mmin +2880 -name "all-databases.dump-*.gz" | xargs rm -f

/usr/bin/mysqldump -u root -p【MYSQL_ROOT_PASS】 --single-transaction --events --all-databases | gzip -c > /root/var/mysqldump/all-databases.dump.gz

cp -rp /root/var/mysqldump/all-databases.dump.gz /root/var/mysqldump/all-databases.dump-`date '+%Y%m%d-%H%M%S'`.gz

mkdir -p /root/var/mysqldump

別のサーバにFTP転送する場合

yum install ftp

ログを残す場合

mkdir -p /root/var/log

ログをメールに添付して送る場合

yum install sharutils

Kaltura

削除扱いになった動画ファイル(変換ファイルも含む)を削除

vi /root/bin/deleted_video_delete.sh

#!/bin/bash

MYSQL='/usr/bin/mysql -u root -p【ROOT_PASSWORD】 kaltura'

# 最後の再生から1ヶ月経過していて、削除扱いとなっている動画
#sql="select id from entry where data LIKE '&deleted_video%' AND last_played_at < (NOW( ) - INTERVAL 1 MONTH);"
# 削除扱いにしてから1か月経過している動画
sql="select id from entry where data LIKE '&deleted_video%' AND updated_at < (NOW( ) - INTERVAL 1 MONTH);"

for entry_id in `echo "${sql}" | ${MYSQL} -N`
do
        if [ -z "${entry_id}" ]; then
                continue
        fi
        #find /opt/kaltura/web/content/entry/data/0 -type f -name "${entry_id}*" -print | xargs echo
        find /opt/kaltura/web/content/entry/data/0 -type f -name "${entry_id}*" -print | xargs rm -f
done

kaltura のデータベースから id,name のCSVを出力

vi /root/bin/create_csv_from_kaltura_entry.sh

#!/bin/bash

DATE_NOW=`date '+%Y%m%d-%H%M%S'`

echo "select id,name from entry where data not like '%deleted%' or data is null into outfile '/var/tmp/entry.table.${DATE_NOW}.csv' fields terminated by ',';" | mysql -u root -p【MYSQL_ROOT_PASS】 kaltura

mv /var/tmp/entry.table.${DATE_NOW}.csv /root/var/tmp

#-- zip 圧縮
#zip /root/var/tmp/entry.table.${DATE_NOW}.csv.zip /root/var/tmp/entry.table.${DATE_NOW}.csv

#-- メール送信
/usr/bin/uuencode /root/var/tmp/entry.table.${DATE_NOW}.csv entry.table.${DATE_NOW}.csv | mail -s "kaltura entry csv" 【MAIL_ADDRESS】

mkdir -p /root/var/tmp

chmod 755 /root/bin/*

DBのdumpファイルを一週間保存

vi /home/webusers/[USER]/bin/backupdb.sh

#!/bin/sh

error(){
        echo $1 >&2
}
usage(){
        echo "`basename $0` <filename(dbname)> <OUTDIR> [ROTATE=7]"
}

########### initialize ##########
if [ -z "$1" ]; then
        error "Bad parameter."
        usage | error
fi
if [ -z "$2" ]; then
        error "Bad parameter."
        usage | error
fi

FILENAME="$1"
OUTDIR="$2"

if [ -z "$3" ]; then
        ROTATE=7
else
        ROTATE="$3"
fi

########### main ##########
get_file_name(){
        echo "$1-$2"
}

# new
TARGETDATE=`date '+%Y%m%d-%H'`
outfilename=`get_file_name "$FILENAME" "$TARGETDATE"`
outfilepath="$OUTDIR/$outfilename.gzip"

cat /dev/stdin | gzip -c > $outfilepath

# remove old
TARGETDATE=`date -d "$ROTATE hours ago" '+%Y%m%d-%H'`
rmfilename=`get_file_name "$FILENAME" "$TARGETDATE"`
rmfilepath="$OUTDIR/$rmfilename.gzip"

if [ -f "$rmfilepath" ]; then
        /bin/rm -f $rmfilepath
fi

mkdir -p /home/webusers/[USER]/backup

chmod 755 /home/webusers/[USER]/bin/*

コメントを入力:
T W C N R