煮酒听雨
首页
PHP
MYSQL
WEB
Linux
关于本站
登陆
注册
Linux-CentOs7实现定时任务
编辑时间:2016-12-27
编辑:忘尘
阅读:745
简述:用户定义的 crontab 都被保存在/var/spool/cron 目录中,并使用创建它们的用户身份来执行。要以某用户身份创建一个 crontab 项目,登录为该用户,然后键入 crontab -e 命令来编辑该用户的 crontab。该文件使用的格式和 /etc/crontab 相同。当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名被保存,并写入文件 /var/spool/cron/username 中。cron 守护进程每分钟都检查 /etc/crontab 文件、etc/cron.d/ 目录、以及 /var/spool/cron 目录中的改变。如果发现了改变,它们就会被载入内存。这样,当某个 crontab 文件改变后就不必重新启动守护进程了。 ####CentOS7 crontab服务命令 开启 ```linux /bin/systemctl start crond.service ``` 停止 ```linux /bin/systemctl stop crond.service ``` 重启 ```linux /bin/systemctl restart crond.service ``` 重载 ```linux /bin/systemctl reload crond.service ``` 状态 ```linux /bin/systemctl status crond.service ``` 查看crontab服务状态:service crond status 手动启动crontab服务:service crond start 没办法重新启动crond,这个时候可以先killall crond 然后再开启 # crontab基本格式 ```linux # +---------------- minute 分钟(0 - 59) # | +------------- hour 小时(0 - 23) # | | +---------- day 日期(1 - 31) # | | | +------- month 月份(1 - 12) # | | | | +---- week 星期(0 - 7) (星期天=0 or 7) # | | | | | # * * * * * 要运行的命令 ``` "*"代表所有的取值范围内的数字。特别要注意哦! "/"代表每的意思,如"*/5"表示每5个单位 "-"代表从某个数字到某个数字 ","分散的数字 ####crontab文件的一些例子: ```linux 30 21 * * * 表示每晚的21:30 45 4 1,10,22 * * 表示每月1、10、22日的4 : 45 10 1 * * 6,0 表示每周六、周日的1 : 10 0,30 18-23 * * * 表示在每天18 : 00至23 : 00之间每隔30分钟 0 23 * * 6 表示每星期六的11 : 00 pm * */1 * * * 每一小时 * 23-7/1 * * * 晚上11点到早上7点之间,每隔一小时 * 8,13 * * 1-5 从周一到周五的上午8点和下午1点 0 11 4 * mon-wed 每月的4号与每周一到周三的11点 0 4 1 jan * 一月一号的4点 0,30 18-23 * * * 每天18 : 00至23 : 00之间每隔30分钟 0 */1 * * * /usr/local/etc/rc.d/lighttpd restart 每一小时重启apache 0 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart 晚上11点到早上7点之间,每隔一小时重启apache 0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart 每月的4号与每周一到周三的11点重启apache ``` #####编辑root下的定时任务 ```linux crontab -u root -e ``` ```linux 每天早上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 -q选项表示安静模式, -O temp.txt”表示输出会发送到临时文件 */10 * * * * /usr/bin/wget -q -O temp.txt http://www.wiqna.net/myscript.php ``` ####常用命令 crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数 crontab -l //列出某个用户cron服务的详细内容 crontab -r //删除没个用户的cron服务 -i : 会和-r 配合使用,在删除当前的crontab时询问,输入y 则删除 crontab -e //编辑某个用户的cron服务 ####查看动态日志: tail -f /var/log/cron <br /> ####定时调用php脚本 注:如果php中涉及到路径问题,必须用服务器本机的绝对路径 ``` $dir = __DIR__; $time = date("Y-m-d h:i:s",time()); file_put_contents($dir."/crontab.txt","[$time]\n",FILE_APPEND); ``` #####1、每分钟执行php脚本 ``` */1 * * * * /usr/local/php/bin/php(使用which php查看或php) 文件绝对路径 >> 执行结果日志绝对路径(可省略,作用查看脚本执行情况) ``` #####2、实现秒数执行 方法一: ``` */1 * * * * sleep 30; php /home/fdipzone/php/crontab/tolog.php ``` 以下方法将每20秒执行一次 ``` crontab -e * * * * * /bin/date * * * * * sleep 20; /bin/date * * * * * sleep 40; /bin/date ``` 方法二: 当然是写一个后台运行的脚本一直循环,然后每次循环sleep一段时间。 while true ;do command sleep XX //间隔秒数 done #####3、实现定时任务(定时访问网页) 表示每两分钟访问一次网页 ``` * * * * * curl(或/usr/bin/curl,具体which curl查看) http://www.baidu.com >> 执行结果日志绝对路径(可省略,作用查看脚本执行情况) ``` 注意: 1、每次编辑完某个用户的cron设置后, cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的, 只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。 2.编辑/etc/crontab 文件配置cron,cron 服务每分钟不仅要读一次/var/spool/cron 内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。 用crontab配置是针对某个用户的, 而编辑/etc/crontab是针对系统的任务。
来说两句吧
提交评论
最新评论
我的标签
函数
面试
REDIS
LNMP
验证
时间
JS
LINUX
CPA
常量
MYSQL
备份
微信
文件
压缩
优化
SVN
PHP
集合
数组
HTML
收藏
NGINX
配置
日志
性能
加密
下载
FORM
WEB
样式
SQL
表单
配置,面试,REDIS
编码
ARRAY
替换
截取
密码
版本
进程
定时
测试
事务
数据
权限
安全
防火墙
索引
设计模式
安全,面试
缓存
热文排行
LNMP状态管理命令
navicat for mysql 导入xlsx,
(置顶)开发中常用功能知识点笔记
(置顶)收藏优秀分享文章集合
PHP加密解密算法(Discuz!经典代码)
PHP 获取数组第一个元素或最后一个值
Nginx配置 nginx.conf 文件中常用配
MySQL错误日志 [Warning] IP ad
Redis持久化:快照(RDB)和AOF简解
浅析SQLmap
随机文章
友情链接
官方手册
thinkphp
php扩展
Linux命令
lnmp
PHP中文网
鸟哥Linux私房
Nginx中文文档
json格式化
Redis手册
composer中文文档
CentOS下载
流程图
VPN代理
菜鸟网
奇淼教程
首页
PHP
MYSQL
WEB
Linux
关于本站
登陆
注册