Linux计划任务crontab

偏执的太偏执、 2022-04-03 17:08 449阅读 0赞

Linux有一个称为crond的守护程序,主要功能是周期性地检查 /var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。用户可以通过crontab 命令来建立、修改、删除这些命令文件。
例如,建立文件crondFile,内容为“00 9 23 Jan * HappyBirthday”,运行“crontab cronFile”命令后,每当元月23日上午9:00系统自动执行“HappyBirthday”的程序(“*”表示不管当天是星期几)。

.crontab时间格式内容

* * * * * command
M 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.正确格式样例一则

代码:

ora10g@tacsoft /home/oracle$ crontab -e
0 22 * * 0-6 /db_backup/dpump_dir/expdp.sh 1>>/db_backup/dpump_dir/expdp.log 2>&1

*/10 * * * * /bin/sh /var/lib/sphinx/reload_index.sh >/dev/null 2>&1
10 1 * * * /bin/sh /var/lib/sphinx/sphinx.sh >/dev/null 2>&1

*/1 * * * * /var/www/g0551/crontab/try.sh > /var/log/mylog.log 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

try.sh如下:

#!/bin/bash
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这个文件中

注意检查一下crontab是否启动,/etc/init.d/crond start

参数:
-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 现在就可以用这个命令来编辑配置文件了

--kaixuan’s cnblogs

参考文档: http://www.xshell.net/linux/crontab-3.html

执行php脚本:

Try to put this into your .php file

  1. <?php #!/usr/local/bin/php -q //your code here ?>

Then if you include any file into this file you must use something like:

  1. include"/var/www/../your_absolute_path_from_root_folder/connect.php";

Finnaly make sure this file has the right permissions..Try

  1. chmod 755 /var/www/.../file.php

Then if you edit your crontab file with the following command

  1. vi /etc/crontab

put something like

  1. 10 6 * * * root php /var/www/..path../file.php

and restart the service with this command

  1. /etc/init.d/cron restart

you have do your job!!

  • Note-Tip:the php file isn’t neccessery to be into public_html folder!!

发表评论

表情:
评论列表 (有 0 条评论,449人围观)

还没有评论,来说两句吧...

相关阅读