linux 中的定时任务crontab使用方法

时间:2021-10-03 22:15:52

 详见http://blog.csdn.net/putin1223/article/details/46727283

例如,要每隔3分钟查找自己的home目录下所有超过30天没查看过的文件,并把文件的详细信息追加输出到~/check/很长时间没使用的文件.txt。

解答步骤:

1. 在终端创建脚本 (touch /home/liqingzhu/checkUnUsedFiles+30.sh),并vim checkUnUsedFiles+30.sh编辑脚本

#!/bin/bash
if [ ! -f ~/check/ ]; then
mkdir ~/check/
fi
checkFilePath="/home/"
if [ ! -f ~/check/很长时间没使用的文件.txt ]; then
touch ~/check/很长时间没使用的文件.txt
fi
find $checkFilePath -atime +30 -exec ls -l {} \; >> ~/check/很长时间没使用的文件.txt

2. 在终端为当前用户创建cron服务

   (1)  在终端键入crontab -e编辑crontab服务文件

*/3   *   *   *   *    /bin/sh  /home/liqingzhu/checkUnUsedFiles+30.sh       

   (2)  保存文件并退出

3. 查看该用户下的crontab服务是否创建成功, 用crontab -l命令。

此时,定时任务就创建完毕(注意:首先要启动crontab服务,/sbin/service crond start)

crontab命令

crontab服务提供crontab命令来设定cron服务,

crontab -u   //设定某个用户的cron服务,一般root哦那个户在执行这个命令的时候需要此参数

crontab -l    //列出某个用户cron服务的详细内容

crontab -r   //删除某个用户的crontab服务

crontab -e  //编辑某个用户的cron服务

编辑cron服务时,编辑的内容有的格式和约定

代表意义

分钟

小时

日期

月份

命令

数字范围

0~59

0~23

1~31

1~12

0~7

就命令啊

 周的数字为0或7时,都代表“星期天”的意思。

特殊字符 

代表意义

*(星号)

代表任何时刻都接受的意思。

,(逗号)

代表分隔时段的意思。举例来说,如果要执行的工作是3:00与6:00时,就会是:
0 3,6 * * * command
时间还是有五列,不过第二列是 3,6 ,代表3与6都适用

-(减号)

 代表一段时间范围内,举例来说,8点到12点之间的每小时的20分都进行一项工作:
20 8-12 * * * command
仔细看到第二列变成8-12.代表 8,9,10,11,12 都适用的意思

/n(斜线)

 那个n代表数字,即是每隔n单位间隔的意思,例如每五分钟进行一次,则:
*/5 * * * * command
用*与/5来搭配,也可以写成0-59/5,意思相同