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目录下

本文地址:http://www.vnote.net/index.php?m=Home&c=Article&a=index&id=47


回复列表



回复操作

正在加载验证码......

请先拖动验证码到相应位置

发布时间:2016-07-02 16:45:15

修改时间:2016-07-02 16:45:15

查看次数:512

评论次数:0