Linux中定时任务crontab

时间:2022-01-09 21:06:44

linux中crontab是一个用于很方便定时任务的工具。比如说定时跑脚本处理等等。crontab文件包含送交cron守护进程的一系列作业和指令。每个用户可以拥有自己的crontab文件;同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc或者/etc之下的子目录中,而这个文件只能由系统管理员来修改。

crontab命令:

1.参数:

-e [UserName]: 执行文字编辑器来设定时程表,内定的文字编辑器是 VI

-r [UserName]: 删除目前的时程表

-l [UserName]: 列出目前的时程表


2.将当前crontab的任务导出到文件:

crontab > crontab.temp


3.将批量任务导入到crontab中:

crontab crontab.temp


4.下面给出crontab定时启动脚本的例子

step 1:crontab -e      编辑定时任务配置

step 2:*/1 * * * * sh /home/***/cheng_python/hello.sh >> /home/**/log.txt   重定向到log.txt

step 3: 保存就 crontab: installing new crontab 说明已经开始运行了

#!/bin/sh
source && /home/***/.bashrc
echo "hello"
<span style="font-size:18px;">这就可以在每分钟打印到log.txt中了。</span>

因为crontab可能有时无法执行用户家目录下面的两个文件,分别是.bashrc和.bash_profile。
这二个文件的作用:
.bashrc作用是用于bash shell的bash信息,当登录时及每次打开新的shell时,该文件被读取;
.bash_profile作用是每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!
默认情况下,设置一些环境变量,执行用户的.bashrc文件。
因此,要手动在crontab文件中添加source /home/****/.bashrc 


crontab中经常配置运行脚本输出为:>/dev/null 2>&1,来避免crontab运行中有内容输出。

shell命令的结果可以通过‘> ’的形式来定义输出
/dev/null 代表空设备文件
> 代表重定向到哪里,例如:echo "123" > /home/123.txt
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
那么重定向输出语句的含义:
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。
2>&1 表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。