Linux执行定时任务crontab
第一步:检查服务器是否安装了crontab
执行[root@root ~]# crontab -l或者其他crontab命令,如果提示 crontab not found 则
执行安装命令:
[root@root ~]# yum install vixie-cron
[root@root ~]# yum install crontabs
说明:
vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动
cron 守护进程的表格的程序。
查看crontab服务状态:service crond status
手动启动crontab服务:service crond start
手动重启crontab服务:service crond restart
第二步:编写shell脚本文件
//将下面shell文本命名为back.sh保存到/usr/back_sh
并赋执行权限: chmod+x文件名 或者chmod 777 文件名
//脚本执行会自动备份/mnt/disk/下的a目录和b目录下的所有文件夹和文件
#!/bin/sh
. /etc/rc.d/init.d/functions
DIRNAME=`ls /mnt/disk | grep back_data`
if [ -z "$DIRNAME" ] ; then
mkdir /mnt/disk/back_data/
cd /mnt/disk/back_data/
fi
DATE=$(date +%Y%m%d)
BACKETC=$DATE.tar.gz
tar zcvf /mnt/disk/back_data/$BACKETC /mnt/disk/a /mnt/disk/b
mysqldump -u用户名 -p密码 数据库名 | gzip > /mnt/disk/back_data/`date +%Y%m%d`.sql.gz
find /mnt/disk/back_data/ -mtime +4 -type f -name "*.gz" -exec rm -rf {} \;
echo "fileback finished!"
Linux date格式简介:
%Y 年份 %y 年份最后两位数位 (00-99)
%H 小时(00-23) %I 小时(00-12)
%m 月份(01-12) %M 分(00-59) %S 秒(00-60)
第三步:编写crontab定时任务
[root@root ~]# crontab -e
空文件开头写入 * * * * * /XXX.sh
例: 0 4 * * * /XXX.sh 每天的凌晨4点执行任务一次
*号代表时间
第一个:一小时中的第几分钟 0-59
第二个:一天当中的第几小时 0-23
第三个:一月当中的第几天 1-31
第四个:一年当中的第几月 1-12
第五个:一星期当中的星期几 0-7(0/7都是星期日)
-l 查看定时任务 -r 删除所有定时任务
这里以凌晨4点半为例
30 4 * * * /usr/back_sh/back.sh
——————————————————————————
静静的等待凌晨4点半的到来
或者进入到到/usr/back_sh目录
执行[root@root ~]# sh back.sh
结果会把/mnt/disk/ a和b目录、数据库文件
以日期为名打包为例20160702.tar.gz到/mnt/disk/back_data目录下
文章来源:微笔记_博客