次のスクリプトがあります。
#------------------------ SETTINGS
FOLDER_NAME="$(date '+%Y_%b_%d')"
LOG_PATH=/home/alex/logs/backup-seafile-$FOLDER_NAME.log
DIR_PATH=/mnt/data/Backups/Seafile
FOLDER_PATH=$DIR_PATH/$FOLDER_NAME
echo "--------------------------------------------" >> $LOG_PATH
echo "[$(date '+%Y %b %d %H:%M:%S')] Running Seafile backup" | tee -a $LOG_PATH
echo "[$(date '+%Y %b %d %H:%M:%S')] Deleting old backups..." | tee -a $LOG_PATH
#find $DIR_PATH/* -type d -ctime +7 -print -exec rm -rf {} \; >> $LOG_PATH
echo "[$(date '+%Y %b %d %H:%M:%S')] Stopping seafile..." | tee -a $LOG_PATH
/opt/seafile/seafile-server-latest/seafile.sh stop
/opt/seafile/seafile-server-latest/seahub.sh stop
echo "[$(date '+%Y %b %d %H:%M:%S')] Collecting garbage..." | tee -a $LOG_PATH
/opt/seafile/seafile-server-latest/seaf-gc.sh
echo "[$(date '+%Y %b %d %H:%M:%S')] Creating backup folder..." | tee -a $LOG_PATH
mkdir $FOLDER_PATH
echo "[$(date '+%Y %b %d %H:%M:%S')] Databases..." | tee -a $LOG_PATH
mysqldump -h localhost -uUSER -pPASSWORD --opt ccnet-db > $FOLDER_PATH/ccnet-db.sql
mysqldump -h localhost -uUSER -pPASSWORD --opt seafile-db > $FOLDER_PATH/seafile-db.sql
mysqldump -h localhost -uUSER -pPASSWORD --opt seahub-db > $FOLDER_PATH/seahub-db.sql
echo "[$(date '+%Y %b %d %H:%M:%S')] Data..." | tee -a $LOG_PATH
rsync -azv --progress /mnt/data/seafile/ $FOLDER_PATH | tee -a $LOG_PATH
echo "[$(date '+%Y %b %d %H:%M:%S')] Starting seafile..." | tee -a $LOG_PATH
/opt/seafile/seafile-server-latest/seafile.sh start
/opt/seafile/seafile-server-latest/seahub.sh start
echo "[$(date '+%Y %b %d %H:%M:%S')] Backup Complete!" | tee -a $LOG_PATH
私は最近フォルダが1つしかないことを知り、すべてのバックアップの過去の日付に同じタイムスタンプがあったため、コメントアウトされた行が削除されたことに気づきました。この日付をどこから取得したのか、どのように変更するのかわかりません。 mkdir を実行すると、通常は正しい日付のフォルダが作成されます。何を提供しますか?
答え1
ライン
rsync -azv --progress /mnt/data/seafile/ $FOLDER_PATH
タイムスタンプは にリセットできますseafile
。
touch $FOLDER_PATH
この問題は後で解決できますrsync
。