常用shell命令 - crontabs

crontabs
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。
常用参数:

1
2
3
4
5
6
7
8
9
10
crontab   -l   //查看当前用户下的cron任务
crontab -e //编辑当前用户的定时任务
crontab -u linuxso -e //编辑用户linuxso的定时任务
crontab file [-u user]-用指定的文件替代目前的crontab。
crontab-[-u user]-用标准输入替代目前的crontab.
crontab-1[user]-列出用户目前的crontab.
crontab-e[user]-编辑用户目前的crontab.
crontab-d[user]-删除用户目前的crontab.
crontab-c dir- 指定crontab的目录。
crontab文件的格式:M H D m d cmd.

基本格式 :

1
*  *  *  *  *  command

分 时 日 月 周 命令

  • 第1列表示分钟1~59 每分钟用或者 /1表示
  • 第2列表示小时1~23(0表示0点)
  • 第3列表示日期1~31
  • 第4列表示月份1~12
  • 第5列标识号星期0~6(0表示星期天)
  • 第6列要运行的命令

f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执
行的程序。

  • 当 f1 为 时表示每分钟都要执行 program,f2 为 时表示每小时都要执行程序,其馀类推
  • 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
  • 当 f1 为 /n 时表示每 n 分钟个时间间隔执行一次,f2 为 /n 表示每 n 小时个时间间隔执行一次,其馀类推
  • 当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其馀类推
    使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。

环境变量的重新引入

cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量;如果执行的shell、Perl脚本中引用其他的变量或者是相应的模块包等,则需要重新导入相应的环境变量;如下:

1
2
3
4
5
#/bin/sh
export PERL5LIB="/share/nas2/genome/biosoft/perl/current/lib/::/share/nas2/genome/biosoft/perl/current/lib/:/share/nas2/genome/biosoft/perl/current/lib/5.20.0/x86_64-linux-thread-multi:/share/nas2/genome/biosoft/perl/current/lib/:/share/nas2/genome/biosoft/perl/5.20.0/lib/site_perl/5.20.0/x86_64-linux-thread-multi:/share/nas2/genome/biosoft/perl/5.20.0/lib/site_perl/5.20.0:/share/nas2/genome/biosoft/perl/5.20.0/lib/5.20.0/x86_64-linux-thread-multi" ;
source /root/.bashrc;
source /home/liubo/.bshrc ;
/share/nas2/genome/bin/perl /share/nas2/database/genome/test.pl >/home/liubo/err ;
-------------本文结束感谢您的阅读-------------