linux下的定时任务

[b]/etc/crontab:[/b]

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
#03 18 * * * root /opt/apache2/bin/apachectl
03 5 * * * root sh /opt/httpre.sh

[b]
httpre.sh:
[/b]
#!/bin/sh
a=`ps -ef | grep httpd | grep -v grep | wc -l `
if [ $a -ge 123 ]
then
pkill -9 httpd && /opt/apache2/bin/apachectl restart
echo "httpd restart [OK]"
else
echo "httpd status ok"
fi
exit 0


第1列分钟1~59
第2列小时1~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~6(0表示星期天)
第6列要运行的命令

下面是crontab的格式:
分 时 日 月 星期 要运行的命令

这里有crontab文件条目的一些例子:

30 21 * * * /usr/local/apache/bin/apachectl restart
上面的例子表示每晚的21:30重启apache。

45 4 1,10,22 * * /usr/local/apache/bin/apachectl restart
上面的例子表示每月1、10、22日的4 : 45重启apache。

10 1 * * 6,0 /usr/local/apache/bin/apachectl restart
上面的例子表示每周六、周日的1 : 10重启apache。

0,30 18-23 * * * /usr/local/apache/bin/apachectl restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

0 23 * * 6 /usr/local/apache/bin/apachectl restart
上面的例子表示每星期六的11 : 00 pm重启apache。

* */1 * * * /usr/local/apache/bin/apachectl restart
每一小时重启apache

* 23-7/1 * * * /usr/local/apache/bin/apachectl restart
晚上11点到早上7点之间,每隔一小时重启apache

0 11 4 * mon-wed /usr/local/apache/bin/apachectl restart
每月的4号与每周一到周三的11点重启apache

0 4 1 jan * /usr/local/apache/bin/apachectl restart
一月一号的4点重启apache
Linux系统中配置Cron定时任务是一项常见的系统管理任务,可以用于自动化执行备份、清理日志、运行脚本等操作。以下是详细的配置方法和相关注意事项。 ### 配置Cron定时任务的基本步骤 Cron任务的配置主要通过`crontab`命令完成。每个用户可以拥有自己的`crontab`文件,系统级任务则通常位于`/etc/crontab`或`/etc/cron.d/`目录下。 #### 查看当前用户的Cron任务 可以使用以下命令查看当前用户的所有Cron任务: ```bash crontab -l ``` #### 编辑当前用户的Cron任务 使用以下命令进入编辑模式,添加、修改或删除定时任务: ```bash crontab -e ``` 在编辑器中,每一行代表一个定时任务,格式如下: ``` * * * * * command_to_execute ``` 五个星号分别表示: - 第1个星号:分钟(0-59) - 第2个星号:小时(0-23) - 第3个星号:日期(1-31) - 第4个星号:月份(1-12) - 第5个星号:星期几(0-7,0和7都表示星期日) 例如,以下任务表示每天凌晨1点执行一次备份脚本: ``` 0 1 * * * /path/to/backup_script.sh ``` #### 系统级Cron任务 系统级任务通常由root用户管理,配置文件位于`/etc/crontab`,其格式与用户级`crontab`略有不同,多出一列用于指定执行任务的用户: ``` * * * * * username command_to_execute ``` 此外,`/etc/cron.d/`目录下也可以放置多个独立的Cron任务文件,适用于不同服务或应用。 #### 启动与管理Cron服务 在大多数Linux发行版中,Cron服务由`cron`或`crond`守护进程提供。可以通过以下命令管理服务状态: ```bash # 启动Cron服务 sudo service cron start # 停止Cron服务 sudo service cron stop # 重启Cron服务 sudo service cron restart # 查看Cron服务状态 sudo service cron status ``` #### Cron任务的日志查看 Cron任务的执行日志通常记录在系统日志文件中,如`/var/log/syslog`(Debian/Ubuntu)或`/var/log/cron`(CentOS/RHEL)中。可以通过以下命令查看日志: ```bash tail -f /var/log/syslog | grep CRON ``` 或 ```bash journalctl ``` ### 注意事项 - 在配置Cron任务时,确保脚本路径正确,并且脚本具有可执行权限。 - 如果任务依赖特定环境变量,建议在Cron中显式定义这些变量,避免因环境变量缺失导致任务失败。 - 使用`crontab -e`编辑任务时,务必确保语法正确,否则可能导致整个Cron配置失效。 - 如果系统中存在`/etc/cron.allow`和`/etc/cron.deny`文件,只有在`cron.allow`中的用户可以使用Cron,而`cron.deny`中列出的用户将被禁止使用Cron。如果两个文件都不存在,则只有root用户可以管理Cron任务[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值