項目需要定時備份資料庫,以下是自己的操作筆記 1.檢查磁碟空間 這是我當前linux伺服器的情況,至於為什麼是這樣子,我也不清楚(我是半路接過來的,無奈) 根據上面的信息,我就把備份文件放在/dev目錄下麵 2.創建備份目錄 3.創建備份shell命令 輸入如下內容 對備份進行壓縮 註意: 把 us ...
項目需要定時備份資料庫,以下是自己的操作筆記
1.檢查磁碟空間
# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 3.6G 34G 10% / tmpfs 16G 0 16G 0% /dev/shm
這是我當前linux伺服器的情況,至於為什麼是這樣子,我也不清楚(我是半路接過來的,無奈)
根據上面的信息,我就把備份文件放在/dev目錄下麵
2.創建備份目錄
cd /dev mkdir backup cd backup
3.創建備份shell命令
vi bkDatabaseName.sh
輸入如下內容
1 #!/bin/bash 2 mysqldump -uusername -ppassword -hmysqlIp DatabaseName > /dev/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql
對備份進行壓縮
mysqldump -uusername -ppassword -hmysqlIp DatabaseName | gzip > /dev/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz
註意:
把 username 替換為實際的用戶名;
把 password 替換為實際的密碼;
把mysqlIp替換mysql的IP;
把 DatabaseName 替換為實際的資料庫名;
4.添加可執行許可權
chmod u+x bkDatabaseName.sh
添加可執行許可權之後先執行一下,看看腳本有沒有錯誤,能不能正常使用;
./bkDatabaseName.sh
5.添加定時執行任務
1 # crontab 2 -bash: crontab: command not found
執行 crontab 命令如果報 command not found,就表明沒有安裝;
安裝crontab請參考:http://www.cnblogs.com/dxy1451713982/p/8081569.html
添加定時任務
crontab -e
*/1 * * * * /dev/backup/bkDatabaseName.sh
表示每分鐘執行一次,註:對於cron表達式,建議自己百度
6.測試任務是否執行
1 # tail -f /var/log/cron 2 Dec 21 17:33:10 iZ2318jid47Z run-parts(/etc/cron.daily)[22449]: finished makewhatis.cron 3 Dec 21 17:33:10 iZ2318jid47Z run-parts(/etc/cron.daily)[15753]: starting mlocate.cron 4 Dec 21 17:33:10 iZ2318jid47Z run-parts(/etc/cron.daily)[22460]: finished mlocate.cron 5 Dec 21 17:33:10 iZ2318jid47Z run-parts(/etc/cron.daily)[15753]: starting prelink 6 Dec 21 17:33:27 iZ2318jid47Z run-parts(/etc/cron.daily)[23799]: finished prelink 7 Dec 21 17:33:27 iZ2318jid47Z run-parts(/etc/cron.daily)[15753]: starting readahead.cron 8 Dec 21 17:33:27 iZ2318jid47Z run-parts(/etc/cron.daily)[23811]: finished readahead.cron 9 Dec 21 17:33:27 iZ2318jid47Z run-parts(/etc/cron.daily)[15753]: starting tmpwatch 10 Dec 21 17:33:27 iZ2318jid47Z run-parts(/etc/cron.daily)[23849]: finished tmpwatch 11 Dec 21 17:33:27 iZ2318jid47Z anacron[15719]: Job `cron.daily' terminated
或者去你存放備份文件的目錄下查看,是否有備份文件生成;
7.備份完成後刪除5天前的備份文件
find /dev/backup -name databaseName"*.sql.gz" -type f -mtime +5 -exec rm -rf {} \; > /dev/null 2>&1 find /dev/backup -name databaseName"*.sql" -type f -mtime +5 -exec rm -rf {} \; > /dev/null 2>&1