1、實際並不是進行代碼備份,而是對上傳的附件備份, 畢竟代碼在我這邊主要是通過svn管控的,不需要進行備份了,但是為了偷懶,還是將整個文件夾直接打包了。
name="your code file name" #你代碼文件夾的名稱
# the directory for story your backup file.you shall change this dir
backup_dir="/data/codebak/$name" #備份路徑,看個人喜好,自己命名
# date format for backup file (dd-mm-yyyy)
time="$(date +"%Y%m%d%H%M%S")" #畢竟要每天備份,所以我加時間戳辨識
cd /home/wwwroot/default #打開代碼所在的目錄,這是我的,如果要用這個腳本,請修改
tar -zcf $backup_dir"/"$name"_"$time.tar.gz sccl_demo #打包備份
find /data/codebak/$name/ -mtime +30 -name "*.tar.gz" -exec rm -rf {} \; #硬盤空間有限,只保留30天的數據,超過30天的,需要清理掉
2、對MySQL進行數據備份
db_user="root" #數據庫用戶名
db_passwd="root" #數據庫密碼
db_name="test" #數據庫名稱
# the directory for story your backup file.you shall change this dir
backup_dir="/data/mysqlbak/$da_name"
# date format for backup file (dd-mm-yyyy)
time="$(date +"%Y%m%d%H%M%S")"
#在這邊要注意一下,執行mysqldump的時候,一定要加上完整的路徑,一般這種備份文件的腳本都是放在crontab中,定時執行的。而你如果直接使用mysqldump,不加上完整的路徑的話,會出現crontab的定時任務不能自動執行,但是手動執行腳本一直能成功,這就涉及到crontab的環境變量問題了,有興趣進一步了解的的話,傳送門在此,http://blog.csdn.net/dancen/article/details/24355287
/usr/local/mysql/bin/mysqldump -u$db_user -p$db_passwd $db_name > "$backup_dir/$db_name"_"$time.sql"
find /data/mysqlbak/$db_name/ -mtime +180 -name "*.sql" -exec rm -rf {} \; #保留幾天自己定
