Centos下使用crontab执行定时任务

tech2025-11-17  1

Centos下使用crontab执行定时任务

1.在目录下创建一个.sh后缀的文件2.编辑该文件3.输入以下内容:4.保存编辑的文件5.修改文件权限6.利用centos7的定时任务创建一个定时器7.设置定时任务8.保存定时任务配置9.启动定时器10.例题

环境:VMWare WorkStation Pro 15.5 系统:Centos 7

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数 crontab -l //列出某个用户cron服务的详细内容    crontab -r //删除没个用户的cron服务    crontab -e //编辑某个用户的cron服务

1.在目录下创建一个.sh后缀的文件

2.编辑该文件

3.输入以下内容:

#!/bin/sh find /data/iqmkj/backup/mysql -mtime +7 -name "*.sql" -exec rm -rf {} \;

参考

* 5 * * * find /tmp/* -name "yhwl_task.log*" -ctime +3 -exec rm -rf {} \; * 5 * * * find /home/oraclebackup/* -name "YHBS_*" -ctime +15 -exec rm -rf {} \;

表示每天早上六点删除/root/home/zhang目录下一天前创建的所有文件,不删除文件夹zhang,如果这个文件夹也要删除的话用

* 6 * * * find /root/home/zhang ctime 1 -exec rm -rf {} \;

其中* 6 * * *的意思如下:

第一个*号表示时间中的 分钟 取值范围:0-59 第二个*号表示时间中的 小时 取值范围:0-23 第三个*号表示一个月中的第几天,取值范围:1-31 第四个*号表示一年中的第几个月,取值范围:1-12 第五个*号表示一个星期中的第几天,以星期天开始依次的取值为0~7,0、7都表示星期天

ctime表示创建时间,1 表示一天前,其实Linux中不存在文件创建时间,只有访问时间(atime)、修改时间(mtime)、状态改动时间(ctime)

可以通过命令:stat + 文件路径 查看时间 也可通过命令 touch -t 201212212359 aa (建立文件aa,时间是2012年12月21日23时59分)修改时间

若是删除目录下的指定文件可以用:

find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;

1:+才表示之前的 2:用-name "New*"来查找指定文件 3:/*表示不删除/tmp目录

说明: “/data/iqmkj/backup/mysql” :要删除的文件所在的目录。 “+7” :文件保留天数,即几天前的文件将被删除。 “*.sql”:删除文件后缀为.sql的文件。 其他为固定字符。

4.保存编辑的文件

按一下键盘上的“esc”键,再在当前窗口输入":wq"。文件即保存成功并自动退回到主界面。

5.修改文件权限

输入: chown 777 backup_mysql.sh

6.利用centos7的定时任务创建一个定时器

在主界面输入”crontab -e”,进入定时任务编辑界面。

7.设置定时任务

插入“0 4 * * * /data/iqmkj/backup/mysql/backup_mysql_clean.sh”。 说明: 其中的文件路径为第二步中创建的文件路径。 定时器的配置规则参考:http://blog.csdn.net/foxman209/article/details/6759920

8.保存定时任务配置

按一下键盘上的“esc”键,再在当前窗口输入":wq"。文件即保存成功并自动退回到主界面。

9.启动定时器

在主界面输入“/bin/systemctl start crond.service”。至此全部配置完成。 说明:

/sbin/service crond start //启动服务 /sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload //重新载入配置 # crontab基本格式 # +---------------- minute 分钟(0 - 59) # | +------------- hour 小时(0 - 23) # | | +---------- day 日期(1 - 31) # | | | +------- month 月份(1 - 12) # | | | | +---- week 星期(0 - 7) (星期天=0 or 7) # | | | | | # * * * * * 要运行的命令

10.例题

编辑root下的定时任务 crontab -u root -e 每天早上6点追加一条字符串到一个文本。 0 6 * * * echo "Good morning." >> /tmp/test.txt 每两个小时追加一条字符串一个文本。 0 */2 * * * echo "Have a break now." >> /tmp/test.txt 晚上11点到早上8点之间每两个小时,早上八点 0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt 每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 0 11 4 * 1-3 command line 1月1日早上4点 0 4 1 1 * command line 每月每天每小时的第0分钟执行一次 /bin/ls 0 * * * * /bin/ls 在12月内,每天的早上6点到12点中,每隔20分钟执行一次/usr/bin/backup */20 6-12 * 12 * /usr/bin/backup 周一到周五每天下午5:00寄一封信给 alex_mail_name : 0 17 * * 1-5 mail -s "hi" alex_mail_name < /tmp/maildata 每月每天的午夜0点20分, 2点20分,4点20分....执行 echo "haha" 20 0-23/2 * * * echo "haha" 晚上11点到早上8点之间每两个小时,早上8点,显示时间 0 23-7/2,8 * * * date
最新回复(0)