crontab定時任務實現定時備份
linux系統下,定時備份主要需要用到的命令是crontab,還有就是需要能夠自己寫備份的shell腳本,簡單記錄下如何寫一個定時記錄日志,下面的代碼會在運行時記錄運行的時間。而數據庫備份主要用到的是mysqldump命令
#!/bin/sh
echo excuted in `date +%Y%m%d%H` >> /root/myscripts/log.txt
下面的代碼會定時備份數據庫
#!/bin/sh
time=`date +%Y%m%d%H`
hostname=`hostname`
mysqldump -h 111.222.252.49 -u root -pzzzxxx --all-databases |gzip > /root/myscripts/all_$hostname_$time.sql.gz
find /root/myscripts/ -name "*.gz" -type f -mtime +5 -exec rm {} \; >/dev/null 2>&1
兩個腳本都保存在/root/myscripts/目錄下,下面通過crontab -e命令打開類似于vim編輯環境的界面,然后在里面輸入,會在每天的1點1分執行,并且記錄日志
1 1 * * * sh /root/myscripts/log.sh
1 1 * * * sh /root/myscripts/mysql_bak.sh
利用shell的sleep命令實現定時備份
我們知道,shell支持循環結構的代碼,以及支持sleep命令,讓進程休眠,利用這兩個特性,我們可以寫一個while-true循環,然后每次循環讓進程休眠一次,從而實現定時任務。下面簡單實現一個每三秒打印一個時間出來的定時任務
# 每3秒打印時間的定時任務
while true
do
echo `date`
sleep 3
done