利用shell指令碼進行代碼備份和Database Backup

來源:互聯網
上載者:User

標籤:上傳   dump   mysql   檔案夾   usr   root   附件   /usr   wro   

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 {} \;  #保留幾天自己定

利用shell指令碼進行代碼備份和Database Backup

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.