Linux有一个称为crond的守护程序,主要功能是周期性地检查 /var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。用户可以通过crontab 命令来建立、修改、删除这些命令文件。
例如,建立文件crondFile,内容为“00 9 23 Jan * HappyBirthday”,运行“crontab cronFile”命令后,每当元月23日上午9:00系统自动执行“HappyBirthday”的程序(“*”表示不管当天是星期几)。
.crontab时间格式内容
* * * * * commandM H D m d command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令或脚本内容
如果能掌握这个crontab的时间格式的定义,基本上就会避免出现“bad minute”错误。
[root@localhost ~]# pgrep crond 注:查看crond服务器是否运行;
2022
[root@localhost ~]# /etc/init.d/crond restart
3.正确格式样例一则
0 22 * * 0-6 /db_backup/dpump_dir/expdp.sh 1>>/db_backup/dpump_dir/expdp.log 2>&1
10 1 * * * /bin/sh /var/lib/sphinx/sphinx.sh >/dev/null 2>&1
0 1 * * * /usr/bin/mysqldump -h 127.0.0.1 -u root -123456 --default-character-set=utf8 --skip-opt g0551>/var/www/g0551/g0551.sql
DB_USER='root'
DB_PASS='123456'
DB_HOST='localhost'
DB_PORT='3306'
BIN_DIR='/usr/bin'
$BIN_DIR/mysql -u$DB_USER -p$DB_PASS -h$DB_HOST -P$DB_PORT<<EOF
use g0551;
truncate table try_tmp_message;
EOF
~
Linux下使用crontab来执行定时任务计划
执行定时任务
语法: crontab [-u 用户名] [设置文件]
crontab [-u 用户名] [-elr]
说明:cron是一个守护程序,它提供定时器的功能,让用户在特定的时间得以执行默认的指令或程序.只要用户会编辑定时器的设置文件,就可以使用定时器的功能. 定时器文件格式:
分 时 日 月 周 [用户] command
0 4 * * * root updatedb #每天早上4:00以root用户身份执行updatedb命令
*/5 * * * * root updatedb #每五分制执行一次
*/1 * * * * root updatedb #每一分钟执行一次
其中用户root可以忽略不填,如:
1-59 * * * * echo "hello">>/root/hello.txt #每分钟写个hello到/root/hello.txt这个文件中
-l 列出用户的定时器设置
-e 编辑用户的定时器设置
-r 删除用户的定时器设置
-u<用户名> 指定要设置定时器的用户名称
如果遇到使用crontab -e或crontab -l的时候提示:no crontab for root
说明还没有为root这个账号提供crontab
可以自己创建一个配置文件来添加上去
1. #vi hello-conf
1-59 * * * * echo "hello">/root/hello.txt
2. #crontab -u root hello-conf
3. #crontab -l 应该就可以列出任务列表了。
4. #crontab -e 现在就可以用这个命令来编辑配置文件了
Try to put this into your .php file
<?php
#!/usr/local/bin/php -q
//your code here
?>
Then if you include any file into this file you must use something like:
include"/var/www/../your_absolute_path_from_root_folder/connect.php";
Finnaly make sure this file has the right permissions..Try
chmod 755 /var/www/.../file.php
Then if you edit your crontab file with the following command
vi /etc/crontab
put something like
10 6 * * * root php /var/www/..path../file.php
and restart the service with this command
/etc/init.d/cron restart
you have do your job!!
- Note-Tip:the php file isn't neccessery to be into public_html folder!!