Linux 计划任务 Crontab 笔记与总结(5)crontab 常见错误与案例

① 环境变量

cd ~
pwd

就会到你登陆的那个用户的根目录下

ls -a

能够查看到 .bash_profile 这个文件

vim .bash_profile

这里面设置了一些环境变量。

可以设置一个新的环境变量,在文件末尾加上:

APPDIR=/etc
export APPDIR

:wq! 保存退出

source .bash_profile
echo $APPDIR

如果在计划任务中使用到了全局变量,例如

crontab -e
写入
*/1 * * * * echo $APPDIR >> /tmp/appdir.log

但是此时使用

tail -f /tmp/appdir.log

查看日志时,去发现显示的是空行,正常情况下应该输出 /etc

$APPDIR 根本没有被识别。

原因是在 .bash_profile 设置的环境变量没有被 crontab 识别,因此要注意。

命令行双引号中使用 % 时,未加反斜线 \ 

第三和第五个域之间执行的是 "或" 操作

第三个域是某个月中的天,第五个域是某个月中的星期几,例如:四月的第一个星期日早晨 1 时 59 分运行 a.sh

59 1 1-7 4 * test `date +\%w` -eq 0 && /root/a.sh

%w eq 0 表示当前日所在的星期的某一天如果等于 0 就执行

test 表示判断是否成功

&& 表示当 前面的 test 成功时执行

【补充】

echo $?

表示判断上一个命令执行成功与否,0 表示成功,1 表示失败

④ 分钟设置误用

【两小时运行一次】

正确的写法

0 */2 * * * date

【再例】

1-20/2 * * * * COMMAND

表示 第1、3、5、7、9.....19 分钟运行命令

============

【综合案例】

【例1】Crontab 中最小只能设置到每分钟执行一个命令,如果想每半分钟执行某个命令怎么做到?

——通过 shell 脚本的 sleep 命令配合 Crontab 即可完成这一功能

date && sleep 0.5s && date

例如:

该例表示先执行 date,过了0.5s 之后再执行 date

【例2】

crontab -e

*/1 * * * * date >> /tmp/date.log
*/1 * * * * seep 30s;date >> /tmp/date.log

第一个命令保证每分钟执行一遍命令

第二个命令,执行的时候,先等妨碍 30s ,再去执行

使用下面的命令可以查看写入的时间

tail -f /tmp/date.log
时间: 2024-11-05 09:49:04

Linux 计划任务 Crontab 笔记与总结(5)crontab 常见错误与案例的相关文章

Linux 计划任务 Crontab 笔记与总结(3)Crontab 配置文件

[全局(系统)配置文件] /etc/crontab Linux 主要的配置文件都在 etc 目录下. cd /etc ls cron* vim crontab 进入 cron.d(服务) cd cron.d 使用 cat 命令查看 sysstat 文件(cat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的 ) cat sysstat 会发现,查看的内容和 crontab -l 时的内容很相似 在 crontab 载入配置文件的时候,会把 cron.d 下面的文件里面的配置信

Linux 计划任务 Crontab 笔记与总结(2)Crontab 的基本组成与配置

[Crontab 的基本组成] ① 系统服务 CROND:每分钟都会从配置文件刷新定时任务 ② 配置文件 :文件方式设置定时任务 ③ 配置工具 crontab:用途调整定时任务 [配置文件的配置文件格式] * * * * * COMMAND 第一个 * :分钟 0 - 59,* 表示每分钟都要执行 第二个 * :小时 0 - 23 第三个 * :日期  1 - 31 第四个 * :月份 1 - 12 第五个 * :星期 0 - 7(0 或 7 表示星期天) [例1]每晚的 21:30 重启 Ap

Linux计划任务at&batch&crontab

计划任务        执行一次某任务:at,batch        周期性运行某任务:crontab    1.at命令,只执行一次 at/atq/atrm/batch    at [option]... time        HH:MM[YYYY-mm-dd] //        noon,midnight,teatime //12:00,24:00,16:00        tomorrow HH:MM         now+#            UNIT:minutest,ho

Linux之crontab笔记

引用竹子博客 前一天学习了 at 命令是针对仅运行一次的任务,循环运行的例行性计划任务,linux系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令. 一.crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当

Linux计划任务Crontab实例详解教程

说明:Crontab是Linux系统中在固定时间执行某一个程序的工具,类似于Windows系统中的任务计划程序 下面通过详细实例来说明在Linux系统中如何使用Crontab 操作系统:CentOS 一.安装crontab yum install vixie-cron  #安装 chkconfig crond on  #设为开机启动,先要安装chkconfig(yum install chkconfig) service crond start  #启动 service crond stop  

Linux计划任务 Crontab 详解

Linux公社 2018-08-02 Q:Linux下,如果想要在指定的某个时间点干点什么事,该如何制定计划? A: 计划任务,创建和管理在指定时间自动执行的任务. 注意: 要是任务计划在指定时间自动运行,计划任务的服务必须是启动的. 1.使用at命令调用atd进程设置在某个特定的时间,执行一次性任务. 2.使用crontab命令调用crond进程,设置按固定的周期(如每天.每周等)重复执行预先计划好的任务. 一.一次性计划任务 在指定的日期.时间点自动执行预先设置的一些命令操作. 系统服务的名

linux计划任务at crontab anacron

at:    用于执行一次性任务 at相关的配置文件  /etc/at.allow   /etc/at.deny 如果存在/etc/at.allow文件,仅允许at.allow中包含的用户使用at; 如果不存在/etc/at.allow文件,则/etc/allow.deny文件被检查,at.deny文件中不包含的用户都允许使用at: 如果这两个文件都不存在,则仅允许root使用at; 缺省情况下,存在一个空的/etc/at.deny,允许所有用户使用at. atq = at –l  查询任务队列

25、Linux计划任务详解

Linux任务计划 相信每个人都有使用闹钟的习惯,比如提醒一次,工作日提醒,女朋友生日提醒(首先你要先有个女朋友),在设定闹钟之后,我们可以在设定的时间去提醒你做什么事情 Linux计划任务工具介绍 在各类系统上面都有计划任务功能,在linux上面主要两种工具,at和crontab at命令是专门来执行处理一次性的任务计划的 crontab可以根据定义的时间周期,循坏的去做一些事情 任务计划分类: 一次性的任务计划:只执行一次就结束 周期性的任务计划:每隔一定时间就去执行 at一次性任务 假如我

Linux计划任务(转载)

Linux计划任务(转载) Linux的计划任务是系统管理方面的一个重要内容,是系统自动完成工作的一种实现方式,正因为有了计划任务,我们才可以完全实现系统管理的脚本化和自动化. 关于计划任务,Linux根据用户需要提供了两种服务,一种是atd服务,另一种是cron服务 1.atd服务 如果你的计划任务只要执行一次,那么就请你使atd服务.在默认情况下,Linux系统是开启了atd这个服务的.如果不确认你的Linux是否开启了atd服务,请使用下面这个命令查看: # /etc/init.d/atd