Linux定时任务Crontab命令使用详解与总结 您所在的位置:网站首页 linux定时关闭程序 Linux定时任务Crontab命令使用详解与总结

Linux定时任务Crontab命令使用详解与总结

2023-12-27 14:16| 来源: 网络整理| 查看: 265

crontab命令是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行

如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比较高,一个要求你的程序是24X7小时不宕机,一个是要求你的调度程序比较可靠,实际工作中,90%的程序都没有必要花这么多时间和精力去解决上面的两个问题的,只需要写好自己的业务逻辑,通过Crontab这 工业级程序去调度就行了,Crontab的可靠性,健壮性,大家应该是毫无疑问的。

crontab命令简易入门

假设我要设置一个任务,每分钟就要做一个数据同步,这个同步脚本的路径是/home/blue/do/rsyncfile.sh,那么我可以在这么配置,使用blue用户,在终端输入

crontab -e # 此时会进入 vi 的编辑画面让您编辑工作!注意到,每项工作都是一行。 #分 时 日 月 周 |&1 &

在这个例子中,2>&1表示所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中。

Crontab命令 2>&1 含义

先看一个例子:

0 2 * * * /u01/test.sh >/dev/null 2>&1 &

这句话的意思就是在后台执行这条命令,并将错误输出2重定向到标准输出1,然后将标准输出1全部放到/dev/null 文件,也就是清空。

在这里有有几个数字的意思:

0表示 键盘输入 1表示 标准输出 2表示 错误输出

我们也可以这样写:

0 2 * * * /u01/test.sh 1>/u01/out.file & 0 2 * * * /u01/test.sh 2>/u01/out.file & 0 2 * * * /u01/test.sh 2>/u01/out.file 2>&1 &

将tesh.sh 命令输出重定向到out.file, 即输出内容不打印到屏幕上,而是输出到out.file文件中。

2>&1 是将错误输出重定向到标准输出。 然后将标准输入重定向到文件out.file。

&1 表示的是文件描述1,表示标准输出,如果这里少了&就成了数字1,就表示重定向到文件1。

& :后台执行

测试:

ls 2>1 : 不会报没有2文件的错误,但会输出一个空的文件1; ls xxx 2>1: 没有xxx这个文件的错误输出到了1中; ls xxx 2>&1: 不会生成1这个文件了,不过错误跑到标准输出了; ls xxx >out.txt 2>&1 == ls xxx 1>out.txt 2>&1: 因为重定向符号>默认是1,这句就把错误输出和标准输出都传到out.txt 文件中。

Crontab命令 2>&1写在后面的原因

格式:command > file 2>&1 == command 1> file 2>&1

首先是command > file将标准输出重定向到file中, 2>&1 是标准错误拷贝了标准输出,也就是同样被重定向到file中,最终结果就是标准输出和错误都被重定向到file中。

如果改成: command 2>&1 >file

2>&1 标准错误拷贝了标准输出的行为,但此时标准输出还是在终端。>file 后输出才被重定向到file,但标准错误仍然保持在终端。

经验教训:

打算在服务器上 每天晚上23:00 定时执行Python脚本,去备份MySql数据库,命令如下:

* 23 * * * python /var/www/html/crontab_python/back_db.py >/dev/null 2>&1

结果呢,每次备份都产生了 60份 备份文件,仔细查看定时任务命令,发现在“分”的位置上,少加了个“0”,因为“*”表示该位置的任何一个值,修改如下:

0 23 * * * python /var/www/html/crontab_python/back_db.py >/dev/null 2>&1

然后是PHP脚本的定时执行

0 4 * * * /usr/local/php/bin/php /usr/local/nginx/www/backup-db/backup_db.php 172.16.8.26 >/dev/null 2>&1 0 4 * * * /usr/local/php/bin/php /usr/local/nginx/www/backup-db/backup_db.php 172.16.10.151 >/dev/null 2>&1

本文为大家详细介绍了Linux定时任务Crontab命令使用详解并总结Crontab命令的一些使用技巧以及工作中遇到的一些问题解决方法,希望对大家有所帮助



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有