如何解决crontab编辑器选择及程序执行问题:实用技巧与重启cron服务指南
网上找了一些资料,但是都很乱,不太适用。

1、有时候执行crontab -e时,如果第一次执行这个命令,会要求你选择编辑器。
当你想更改编辑器时,可以使用 select-editor 然后重新选择编辑器。再次选择即可。
2、有时设置crontab后,程序似乎无法执行。最好重新启动 cron。
方法 sudo /etc/init.d/cron stop;/etc/init.d/cronstart 这应该没问题 sudo service cronrestart
3、注意网上说是crond,但实际上我们的服务器好像都是cron。
service cron start //启动服务
service cron stop //关闭服务
service cron restart //重新启动服务
service cron reload //重新加载配置
service cron status //检查状态,看看crontab是否正在运行
检查crontab服务是否设置为开机启动。执行命令:ntsysv //不起作用
在启动时添加 auto-start://。还没试过。
chkconfig --level 35 crond on
4.crontab -e //创建
* * * * * # 每分钟执行一次任务
0 * * * * # 每小时0点执行任务,如6:00、10:00
6,10 * 2 * * # 每月2号,每小时6分钟、10分钟执行一项任务
*/3,*/5 * * * * # 每隔3分钟或5分钟执行一次任务,如10:03、10:05、10:06
#分时度假日月周
** ** ** **
注意星期、太阳和月亮不能同时共存
* 代表任意1
, 代表多项选择,如1,2代表1或2
- 代表范围。如果 23-7 放在整点上,则表示晚上 11 点到早上 7 点。
/ 代表区间。例如,*/3 放在分钟上表示时间少于 3 分钟。
5.cat /etc/crontab 的工作方式与 crontab -l 非常相似
6.crontab -r 删除crontab文件。该命令将删除所有用户的计划任务。
7、注意清理系统用户的邮件日志
每个任务被调度执行后,系统会将任务输出信息通过电子邮件发送给当前系统用户。随着时间的推移,日志信息会非常大,可能会影响系统的正常运行。因此,每个任务都会被重定向。处理非常重要。
例如,您可以在 crontab 文件中设置以下形式来忽略日志输出:
0 */3 * * * /usr/local/apache2/apachectl restart >/dev/null 2>&1
“/dev/null 2>&1”表示先将标准输出重定向到/dev/null,然后将标准错误重定向到标准输出。由于标准输出已被重定向到/dev/null,因此标准错误也将被重定向。指向/dev/null,这样日志输出问题就解决了。
8. 新创建的cron作业不会立即执行。执行至少需要 2 分钟。如果重新启动cron,它将立即执行。
当crontab突然失败时,可以尝试/etc/init.d/crond restart来解决问题。或者查看日志查看作业是否执行/报错
尾-f /var/log/cron.
切勿随机运行 crontab -r。它从 Crontab 目录 (/var/spool/cron) 中删除用户的 Crontab 文件。删除用户后,所有 crontab 都消失了。
在crontab中,%有特殊含义,表示换行。如果要使用它,必须转义\%。例如,经常使用的日期 '+%Y%m%d' 将不会在 crontab 中执行,应替换为日期 '+\%Y\%m\%d' 。
9、使用curl定期访问网页
哪一个每 1 分钟访问一次百度?
*/1 * * * * /usr/bin/curl -o /tmp/temp.txt
如果想用这个来定时执行PHP函数,那么在编写PHP网页时,要注意添加ignore_user_abort();和 set_time_limit(0);如果执行时间比较长。
下面也可以实现定时,但是据说效率不高。
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*30;// 每隔半小时运行
do{
//这里是你要执行的代码 ,需要处理的事物处理完毕了然后就关闭掉进程break
sleep($interval);// 等待5分钟
}while(true);
PHP定时任务的几种实现: