2010年3月17日 星期三

每日自動備份, 檔名如何加上日期 ?

每日自動備份, 檔名如何加上日期 ?

如何mv檔案, 依據原檔案來取新的名稱 !
ls -d *_0.txt | sed 's/\(.*\)_0.txt$/mv "&" "\1_1.txt"/' | sh

取得日期
echo $(date +%Y-%m-%d)

例子 :

#!/bin/bash

BACKUPDIR=/home/jeffrey/backup/rfid/etc
today=$(date +%Y-%m-%d)
cd $BACKUPDIR
days=4
for ((i=$days-1 ; i>=1 ; i=i-1))
do
declare -i j=$i-1
rm -f rfid_etc_????-??-??_$i.tar.bz2
for f in `ls rfid_etc_????-??-??_$j.tar.bz2`
do
echo $f | sed "s/\(.*\)_$j.tar.bz2$/mv '&' '\1_$i.tar.bz2'/" | sh
done
#mv rfid_etc_$j.tar.bz2 rfid_etc_$i.tar.bz2 2>> rfid_etc_backup_err.log
done


cd /

tar jcf $BACKUPDIR/rfid_etc_"$today"_0.tar.bz2 etc


做到這裏,有個問題 : ftp上傳時, 以前的舊檔無法覆蓋, 這會是個大問題

0 意見: