欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

linux crontab 有大用 有大大用

shiping1 的头像

crontab
  名称 : crontab
  使用 : root用户和crontab文件的所有者
   :
  crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]
   :
  crontab 是用来让使用者在固定时间或固定间隔执行程式之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。
  参数 :
  -e [UserName]: 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
  -r [UserName]: 删除目前的时程表
  -l [UserName]: 列出目前的时程表
  -v [UserName]:列出用户cron作业的状态
  程表的格式如下 :
  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 的方式来设定时程表。
  由于unix版本不一样,所以部分语法有差别,例如在hp unix aix 中设定间隔执行如果采用*/n 方式将出现语法错误,在这类unix中 ,间隔执行只能以列举方式,详请见例子。
  使用方法:
  用VI编辑一个文件 cronfile,然后在这个文件中输入格式良好的时程表。编辑完成后,保存并退出。
  在命令行输入
  $: crontab cronfile
  这样就将cronfile文件提交给cron进程,同时,新创建( 新建 )cronfile的一个副本已经被放在/var/spool/cron目录中,文件名就是用户名。

  例子 :
  每月每天每小时的第 0 分钟执行一次 /bin/ls :
  0 * * * * /bin/ls
  在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup :
  */20 6-12 * 12 * /usr/bin/backup
  周一到周五每天下午 5:00 寄一封信给 发邮件给 alex@domain.name :
  0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata
  每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
  20 0-23/2 * * * echo "haha"
  晚上11点到早上8点之间每两个小时,早上8点
  0 23-7/2,8 * * * date
  在hp unix,中,每20分钟执行一次,表示为:0,20,40 * * * * 而不能采用*/n方式,否则出现语法错误
  注意 :
  当程式在你所指定的时间执行后,系统会寄一封信给你,显示该程式执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上 > /dev/null 2>&1 即可。
 
Crontab 例子1
#* * * * * echo "cccc" >> /var/www/html/wang/aa.txt
Crontab 例子2 定时操作php往数据库插入数据
#* * * * * /usr/bin/php   /var/www/html/wang/list.php
Crontab 例子3 定是操作一个shell script 定时备份pic项目
#* * * * *  /home/altechit/   /var/www/html/wang/list.sh
 
 
 
 
 
命令重定向:ls –la > list.txt
将显示结果输出到到list,txt文件中,若该文件存在则予以取代
            Ls –la >>list.txt
将显示结果累加到list,txt文件中,该文件为累加的,旧数据保留
             Ls –la  1> list.txt 2> list.err
将显示正确的输出到list.txt,错误的输出到list.err
            Ls –la  1>list.txt 2>&1
将显示数据不论正确的或错误的均输入到list.txt中。注意。错误与正确的信息输出到同一个文件中,则必须以上面的方法写,不能写成其他格式
           Ls –la  1>list.txt 2> /dev/null
将显示正确的输入到list.txt,错误的予以丢弃
Cat  一般显示文件内容,不分页的
linux cat 命令详解

使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName
说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)
参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting
范例:
cat -n textfile1 > textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。
范例:
把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。
cat -b textfile1 textfile2 >> textfile3
cat /dev/null > /etc/test.txt 此为清空/etc/test.txt档案内容
cat 也可以用来制作 image file。例如要制作软碟的 image file,将软碟放好后打
cat /dev/fd0 > OUTFILE
相反的,如果想把 image file 写到软碟,请打
cat IMG_FILE > /dev/fd0
注:
1. OUTFILE 指输出的 image 档名。
2. IMG_FILE 指 image file。
3. 若从 image file 写回 device 时,device 容量需与相当。
4. 通常用在制作开机磁片。
More  显示文件内容,加参数可以分页显示的
名称:more

  使用权限:所有使用者

  使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]

  说明:类似 cat ,不过会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。

  参数:-num 一次显示的行数

  -d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声

  -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能

  -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)

  -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容

  -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料

  -s 当遇到有连续两行以上的空白行,就代换为一行的空白行

  -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)

  +/ 在每个档案显示前搜寻该字串(pattern),然后从该字串之后开始显示

  +num 从第 num 行开始显示

  fileNames 欲显示内容的档案,可为复数个数

  范例:

  more -s testfile 逐页显示 testfile 之档案内容,如有连续两行以上空白行则以一行空白行显示。

  more +20 testfile 从第 20 行开始显示 testfile 之档案内容。
 
 
 
 
 
 
 

普通分类: