我需要unix cron命令每12小时运行一次。
我的服务器中有500多个子博客。
这是我想每12小时运行一次的文件
http://*.mysite.com/somedir/index.php
其中*是我博客的子域名。
我需要所有博客的cron命令。 是否可以使用单个命令运行所有这些? 或者我必须为每个博客创建命令吗?
答案 0 :(得分:106)
crontab文件有五个字段,用于指定日期,日期和时间,然后命令以该间隔运行。
* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
上面值字段中的 *
表示该列的大括号中的所有合法值。
你可以使用0 1,13 * * *
,这意味着每1AM和1PM。
0 1,13 * * * rm /var/www/*/somedir/index.php > /home/someuser/cronlogs/some.log 2>&1
其中*
可以被不同的域名替换。
答案 1 :(得分:23)
我认为正确的方法是 - > 1 */12 * * *
(实际上,分钟位置的任何数字都可以解决问题。)
如果你设置 - > * */12 * * *
它将在12小时和24小时每分钟执行一次。
答案 2 :(得分:8)
假设您的网站位于/ var / www / sitename,并且您在/ usr / bin / php中安装了php shell,则可以轻松创建运行所有这些文件的cron作业。
运行
crontab -e
并添加此行
42 */12 * * * /usr/bin/php /var/www/*/somedir/index.php >> ~/cronjob.log 2>&1
/ var / www / * / somedir中的*只是一个野猫车。这意味着它将捕获/ var / ww文件夹中的每个目录。
f.ex:
[jens@localhost ~]$ ls -l temp
total 28
-rw-rw-r--. 1 jens jens 1641 Feb 21 16:12 somefile.py
drwxrwxr-x. 2 jens jens 4096 Feb 22 15:10 test
drwxrwxr-x. 2 jens jens 4096 Feb 22 15:10 test2
drwxrwxr-x. 2 jens jens 4096 Feb 22 15:10 test3
drwxr-xr-x. 8 jens jens 4096 Jan 27 10:21 emptydir
-rw-rw-r--. 1 jens jens 548 Jan 27 16:15 Unsaved Document 1
[jens@localhost ~]$ ls temp/*/testfile.php
temp/test2/testfile.php temp/test3/testfile.php temp/test/testfile.php
如您所见,这将返回temp的每个子文件夹中的testfile.php,即文件夹test,test2和test3。 Emptydir也是一个文件夹,但由于它没有testfile.php,所以不会有任何问题。
答案 3 :(得分:6)
你需要某种主脚本(由cron调用),它扩展了网站列表,并调用“/ usr / bin / php /var/www/*/somedir/index.php”,其中包含' *'由列表条目替换。这可以在shellcript,perl或python脚本中完成,甚至可以在php脚本中完成。对于sh,这可能是:(未经测试)
#!/bin/sh
cd /home/subdir/for/cron
LIST="a b c d e f g h i j k l m o p q r s t u v w x y z"
for x in $LIST; do
/usr/bin/php /var/www/${x}/somedir/index.php 2>$1 > /tmp/${x}.log
done
如果将列表硬编码为不方便,还有其他方法:
backticks
或read < file_with_all_the_names_in_it
答案 4 :(得分:6)
使用“* / 12”表示“每12小时一次。”
答案 5 :(得分:3)
0 */12 * * *
的意思是“每12小时凌晨0点。”
签出https://crontab.guru以获得一个不错的计算器。
答案 6 :(得分:1)
在控制台中编写命令
crontab -e
用编辑器编辑(我喜欢纳米)
添加行
0 1,13 * * * php /home/catalog/public_html/crons/index.php
以
结束按ctrl + x
按y然后按enter键 完成:))
检查是否用
保存crontab -l </ p>
命令
如果您想测试它是否可以正常运行测试,只需使用
运行它php /home/catalog/public_html/crons/index.php
命令
答案 7 :(得分:-1)
使用它会在每12小时后运行一次 * * / 12 * * * php / var / www /“您的域名”/cronfile.php
答案 8 :(得分:-2)
->cron('0 */12 * * *');
这个cron将每12小时运行一次调度程序。