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