drupal cron stop问题 目前网站部署在空间,不知道什么原因,cron在某次运行过后就一直处于运行状态,目前手动更新无效,请问有没有什么方法可以停止cron的运行。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Linux下定时任务软件:crontab 命令用法介绍最近用到了比较多的自动执行代码,于是乎关于crontab的介绍和相关就看得比较多整理起来如下:crontab是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。Crontab是内置程序,基本任何版本的Linux都带有这个程序,包括Ubuntu。1.crontab命令选项: -u指定一个用户,-l列出某个用户的任务计划,-r删除某个用户的任务,-e编辑某个用户的任务2.cron配置文件(文件位置:/etc/crontab)语法: 分 小时 日 月 星期 命令0-59 0-23 1-31 1-12 0-6 command (取值范围,0表示周日一般一行对应一个任务)3.记住几个特殊符号的含义: “*”代表取值范围内的数字,“/”代表”每”,“-”代表从某个数字到某个数字,“,”分开几个离散的数字4.配置文件的写法 可以使用crontab -e命令来编辑,也可以直接修改/etc/crontab文件具体格式如下:Minute Hour Day Month Dayofweek command分钟 小时 天 月 天每星期 命令每个字段代表的含义如下:Minute 每个小时的第几分钟执行该任务Hour 每天的第几个小时执行该任务Day 每月的第几天执行该任务Month 每年的第几个月执行该任务DayOfWeek 每周的第几天执行该任务Command 指定要执行的程序在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。举例如下:5 * * * * ls 指定每小时的第5分钟执行一次ls命令30 5 * * * ls 指定每天的 5:30 执行ls命令30 7 8 * * ls 指定每月8号的7:30分执行ls命令30 5 8 6 * ls 指定每年的6月8日5:30执行ls命令30 6 * * 0 ls 指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]*/15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls命令。 ]50 7 * * * root run-parts /etc/cron.daily 每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件[ 注:run-parts参数表示,执行后面目录中的所有可执行文件。下面是Linux 上crontab手册中的知识点:1. crontab文件“正式行”的开始空行、以空格或者“tab”开行的行,被cron(daemon)忽略。以#开始的行,作为注释被cron(daemon)忽略。“注释”不允许与“命令”放在同一行(作为命令的注释),会被作为“第六段”,被cron(daemon)执行。同样的,也不能放在设置环境变量的同一行。2. 在crontab文件中指定环境变量设置变量使用name = value这样的格式,”=”号左右的空格不是必须的。几个变量默认已经被设置,比如:SHELL=/bin/shHOEM=/home/nnixLOGNAME=nnix其中SHELL和HOME可以重新设定,LOGNAME则不可(大概跟确定crontab文件的位置有关)。默认,crontab会把执行的输出发送给crontab的所有者,除非重新设定变量:MAILTO=other_or_email另外,当crontab发送输入时的邮件编码,可以通过设置变量 CONTENT_TYPE 和 CONTENT_TRANSFER_ENCODING 来使用正确的编码来发送邮件。3. crontab 文件的分段依次分别是分(0-59) 时(0-23) 日(1-31) 月(1-23,或者英文名) 周(0-6,或者英文名,0表示周日) 要执行的内容 4. 前五段:时间和日期1)表示任意:* 号表示 “任意”(first-last)。2)指定数字,表示指定的时间。3)指定段,表示“开始-结束”内包含的数:比如3-6,表示3,4,5,64)指定列表:比如 “1,2,3,4″,”0-4,8-12″5)指定“步长”:8-14/2 表示8,10,12,145. 模糊的第六段:1)除去前五段,从第六段开始到换行符或者“%”为止,为要执行的命令。2)默认第六段将被/bin/sh执行,除非在crontab文件中指定了非/bin/sh的SHELL变量。3)第六段中的”%”号,除非前面加”\”号转交,否则,“%”号将结束命令行、换行的意义,并且其后的内容会被做为标准输入发送给前面的命令。6. 冲突的逻辑日期可以用月限定,也可以用“星期”指定,如果两个段有冲突(比如这两段不同时为“*”),那么,第六段的命令将在匹配任何一个的情况下运行,比如“30 4 1,15 * 5″,将在每月的1号和15号 加 每个周五,上午4:30运行。7. crontab文件中的神密符号“%”可能会遇到的一个问题是,在第六段中需要使用date生成日志文件名,比如:0 4 * * * /opt/cron/mysql_dump.sh > /srv/logs/`date +%y-%m-%d`.dump.log这时会发现crontab怎么也不运行这个mysql_dump.sh,也看不到有日志生成。这是因为在crontab文件中,”%”是有特殊含义 的。假如不需要“%”的特殊作用,需要使用转义符转义。上面应该写成:0 4 * * * /opt/cron/mysql_dump.sh > /srv/logs/`date +\%y-\%m-\%d`.dump.log“%”在crontab文件中,有“结束命令行”、“换行”、“重定向”的作用,比如:0 22 * * 1-5 mail -s “It’s 10:00 pm” joe%Joe,%%Where are your kids?%将会在周一至周五的22:00发送一分内容为:Joe,<换行><换行>Where are your kids?<换行>8. 不能理解的特殊用法@reboot : Run once, at startup.为了达到在开机后运行,且只运行一次的目的,除了这个,恐怕无法通过前五段的设置来实现吧?转载:http://blog.xisix.com/?post=7cron是linux下定时执行工具,可在完全无人工干预的情况下作业。可以用一下命令来手动开启或关闭该任务: /sbin/service crond start 启动服务 /sbin/service crond stop 关闭服务 /sbin/service crond restart 重新启动服务 /sbin/service crond reload 重新加载服务 你也可以将这个服务在系统启动的时候自动启动: 在/etc/rc.d/rc.local这个脚本的末尾加上: /sbin/service crond start 现在Cron这个服务已经在进程里面了,我们就可以用这个服务了crontab -u root -e可以编辑制定用户每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。 2.编辑/etc/crontab 文件配置cron cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/ //使用者运行的路径,这里是根目录 # run-parts 01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本 02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本 22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本 42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本 大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。 看一下这段:8. 不能理解的特殊用法@reboot : Run once, at startup.为了达到在开机后运行,且只运行一次的目的,除了这个,恐怕无法通过前五段的设置来实现吧?转载:http://blog.xisix.com/?post=7cron是linux下定时执行工具,可在完全无人工干预的情况下作业。可以用一下命令来手动开启或关闭该任务: /sbin/service crond start 启动服务 /sbin/service crond stop 关闭服务 /sbin/service crond restart 重新启动服务 /sbin/service crond reload 重新加载服务 你也可以将这个服务在系统启动的时候自动启动: 在/etc/rc.d/rc.local这个脚本的末尾加上: /sbin/service crond start 现在Cron这个服务已经在进程里面了,我们就可以用这个服务了crontab -u root -e可以编辑制定用户每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。 2.编辑/etc/crontab 文件配置cron cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/ //使用者运行的路径,这里是根目录 # run-parts 01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本 02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本 22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本 42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本 大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。 要实现只运行一行,建议使用at命令at命令指定的作业只执行一次,而cron指定的命令则会根据一定的周期重复执行。 目前的问题不是linux命令的问题,我的问题在于drupal在运行一次cron后,就一直处于运行状态,无法进行手动更新,每次运行都提示Attempting to re-run cron while it is already running.,查阅很多资料都没找到相关帮助文档。 cron 你用来干什么了? 计划任务? 还要手动更新吗? 这2个最好分出来 也就建2个文件而已可能cron访问文件产生了文件锁 现在的问题是cron处于运行状态,而我的某些计划任务又无法进行。初步估计是空间的问题,现在想找一个办法,看能否将运行的cron停止下来。 求助:怎么能判断自己网站的代码有没有被人改动过? 怎么样在登陆drupal的时候发送一条指令给uchome PHP文件调用的问题 采集后的数理 调用的 问题 一个很基础的问题 我想找出这个月来这个业务的业绩,怎么写语句呢? PHP结合ajax的问题???? 如何用php读取某个文件的属性信息? php代码有没有实时title提示的调试工具 高手过来看下,求如下代码 这种控制字段的代码插到网页里怎么不起做用
最近用到了比较多的自动执行代码,于是乎关于crontab的介绍和相关就看得比较多整理起来如下:crontab是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。Crontab是内置程序,基本任何版本的Linux都带有这个程序,包括Ubuntu。1.crontab命令选项:
-u指定一个用户,
-l列出某个用户的任务计划,
-r删除某个用户的任务,
-e编辑某个用户的任务2.cron配置文件(文件位置:/etc/crontab)语法:
分 小时 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command (取值范围,0表示周日一般一行对应一个任务)3.记住几个特殊符号的含义:
“*”代表取值范围内的数字,
“/”代表”每”,
“-”代表从某个数字到某个数字,
“,”分开几个离散的数字4.配置文件的写法
可以使用crontab -e命令来编辑,也可以直接修改/etc/crontab文件
具体格式如下:
Minute Hour Day Month Dayofweek command
分钟 小时 天 月 天每星期 命令
每个字段代表的含义如下:
Minute 每个小时的第几分钟执行该任务
Hour 每天的第几个小时执行该任务
Day 每月的第几天执行该任务
Month 每年的第几个月执行该任务
DayOfWeek 每周的第几天执行该任务
Command 指定要执行的程序
在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。
举例如下:
5 * * * * ls 指定每小时的第5分钟执行一次ls命令
30 5 * * * ls 指定每天的 5:30 执行ls命令
30 7 8 * * ls 指定每月8号的7:30分执行ls命令
30 5 8 6 * ls 指定每年的6月8日5:30执行ls命令
30 6 * * 0 ls 指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls命令。 ]
50 7 * * * root run-parts /etc/cron.daily 每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件[ 注:run-parts参数表示,执行后面目录中的所有可执行文件。下面是Linux 上crontab手册中的知识点:1. crontab文件“正式行”的开始空行、以空格或者“tab”开行的行,被cron(daemon)忽略。以#开始的行,作为注释被cron(daemon)忽略。“注释”不允许与“命令”放在同一行(作为命令的注释),会被作为“第六段”,被cron(daemon)执行。同样的,也不能放在设置环境变量的同一行。2. 在crontab文件中指定环境变量设置变量使用name = value这样的格式,”=”号左右的空格不是必须的。几个变量默认已经被设置,比如:SHELL=/bin/sh
HOEM=/home/nnix
LOGNAME=nnix其中SHELL和HOME可以重新设定,LOGNAME则不可(大概跟确定crontab文件的位置有关)。默认,crontab会把执行的输出发送给crontab的所有者,除非重新设定变量:MAILTO=other_or_email另外,当crontab发送输入时的邮件编码,可以通过设置变量 CONTENT_TYPE 和 CONTENT_TRANSFER_ENCODING 来使用正确的编码来发送邮件。3. crontab 文件的分段依次分别是分(0-59)
时(0-23)
日(1-31)
月(1-23,或者英文名)
周(0-6,或者英文名,0表示周日)
要执行的内容
4. 前五段:时间和日期1)表示任意:* 号表示 “任意”(first-last)。2)指定数字,表示指定的时间。3)指定段,表示“开始-结束”内包含的数:比如3-6,表示3,4,5,64)指定列表:比如 “1,2,3,4″,”0-4,8-12″5)指定“步长”:8-14/2 表示8,10,12,145. 模糊的第六段:1)除去前五段,从第六段开始到换行符或者“%”为止,为要执行的命令。2)默认第六段将被/bin/sh执行,除非在crontab文件中指定了非/bin/sh的SHELL变量。3)第六段中的”%”号,除非前面加”\”号转交,否则,“%”号将结束命令行、换行的意义,并且其后的内容会被做为标准输入发送给前面的命令。6. 冲突的逻辑日期可以用月限定,也可以用“星期”指定,如果两个段有冲突(比如这两段不同时为“*”),那么,第六段的命令将在匹配任何一个的情况下运行,比如“30 4 1,15 * 5″,将在每月的1号和15号 加 每个周五,上午4:30运行。7. crontab文件中的神密符号“%”可能会遇到的一个问题是,在第六段中需要使用date生成日志文件名,比如:0 4 * * * /opt/cron/mysql_dump.sh > /srv/logs/`date +%y-%m-%d`.dump.log这时会发现crontab怎么也不运行这个mysql_dump.sh,也看不到有日志生成。这是因为在crontab文件中,”%”是有特殊含义 的。假如不需要“%”的特殊作用,需要使用转义符转义。上面应该写成:0 4 * * * /opt/cron/mysql_dump.sh > /srv/logs/`date +\%y-\%m-\%d`.dump.log“%”在crontab文件中,有“结束命令行”、“换行”、“重定向”的作用,比如:0 22 * * 1-5 mail -s “It’s 10:00 pm” joe%Joe,%%Where are your kids?%将会在周一至周五的22:00发送一分内容为:Joe,<换行>
<换行>
Where are your kids?<换行>8. 不能理解的特殊用法@reboot : Run once, at startup.为了达到在开机后运行,且只运行一次的目的,除了这个,恐怕无法通过前五段的设置来实现吧?转载:http://blog.xisix.com/?post=7cron是linux下定时执行工具,可在完全无人工干预的情况下作业。可以用一下命令来手动开启或关闭该任务: /sbin/service crond start 启动服务 /sbin/service crond stop 关闭服务 /sbin/service crond restart 重新启动服务 /sbin/service crond reload 重新加载服务 你也可以将这个服务在系统启动的时候自动启动: 在/etc/rc.d/rc.local这个脚本的末尾加上: /sbin/service crond start 现在Cron这个服务已经在进程里面了,我们就可以用这个服务了crontab -u root -e可以编辑制定用户每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。 2.编辑/etc/crontab 文件配置cron cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/ //使用者运行的路径,这里是根目录 # run-parts 01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本 02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本 22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本 42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本 大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。
8. 不能理解的特殊用法@reboot : Run once, at startup.为了达到在开机后运行,且只运行一次的目的,除了这个,恐怕无法通过前五段的设置来实现吧?转载:http://blog.xisix.com/?post=7cron是linux下定时执行工具,可在完全无人工干预的情况下作业。可以用一下命令来手动开启或关闭该任务: /sbin/service crond start 启动服务 /sbin/service crond stop 关闭服务 /sbin/service crond restart 重新启动服务 /sbin/service crond reload 重新加载服务 你也可以将这个服务在系统启动的时候自动启动: 在/etc/rc.d/rc.local这个脚本的末尾加上: /sbin/service crond start 现在Cron这个服务已经在进程里面了,我们就可以用这个服务了crontab -u root -e可以编辑制定用户每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。 2.编辑/etc/crontab 文件配置cron cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/ //使用者运行的路径,这里是根目录 # run-parts 01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本 02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本 22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本 42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本 大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。