码迷,mamicode.com
首页 > 系统相关 > 详细

linux计划任务

时间:2015-09-07 07:09:22      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:linux计划任务

计划任务分类:

一次性计划任务

at,batch

         承载未来时间运行的某作业:

         支持使用作业队列:

         默认为a队列;

         Ctrl+d  提交

         at命令用法

         at[option]... TIME

          TIME:

          (1)绝对时间

           HH:MM,--------具体的时间

           MMDD[CC]YY,MM/DD/[CC]YY, DD.MM.[CC]YY or [CC]YY-MM-DD

           tomorrow

           (2)相对时间

           now+#UNIT

           minute,hour, day, week

           (3)模糊时间

           midnight

            noon

            teatime

 常用选项:

         -qQUEUE at作业队列;

         -f/PATH/FROM/SOMEFILE:从指定的文件中读取要运行的作业;

          -l:查看作业队列中的等运行作业列表;相当于使用atq命令;

          -cAT_JOB_NUM: 查看待运行作业的内容;

           -d:删除指定作业;相当于atrm

         batch:

                   由系统自行选择在资源较为空闲时运行指定的任务;




周期性计划任务

crontab

命令用法:

(1)系统cron任务;没有默认运行用户身份,所以需要额外指定运行者;

配置文件/etc/crontab

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

5个字段:时间点

user-name:以哪个用户的身份运行任务

commandto be executed: 要运行任务



(2)用户cron任务:由某个用户所提交,默认就以提交者的身份运行,所以无需额外指定运行者;

配置文件/var/spool/cron/USERNAME

可用

vim命令或crontab命令

5个时间点:

分钟:有效取值范围0-59

小时:0-23

日:1-31

月:1-12

周几:0-7

注意:几月几号与周几,不建议同时使用;

例如:

6* * * *

crontab命令用法

crontab命令:

crontab[-u user] [-l | -r | -e]

              -uuser: 不是管理自己的cron任务,而是指定的目标用户的cron任务;仅root拥有管理其它用  户的cron任务的权限;默认管理自己的;

               -l:list,列出任务;

               -r:remove, 移除所有任务;

                       -e:edit,编辑,打开一当前shell会话的默认编辑器来编辑

 补充性的工具:anacron:


linux系统默认会在计划任务执行后送送邮件给用户(在本机之用户之间)

电子邮件服务:

smtp: simple mail transmission protocol

/var/spool/mail/USERNAME

pop3: post office protocol

imap4: internet mail access protocol

MUAmail命令

mail命令:

         mail:进入交互式收发邮件接口;

         mail-s ‘SUBJECT‘ username@hostname

         mail-s ‘SUBJECT‘ username@hostname < /PATH/FROM/SOMEFILE

         COMMAND| mail -s ‘SUBJECT‘ username@hostname

注意:

         (1)如果不想接收任务执行结果的通知邮件:

                 COMMAND> /dev/null

                 COMMAND&> /dev/null

         (2)对于crontab文件来讲,%有特殊功用;如果命令中会出现%, 要记得转义,或者用单引号对其引用;

         (3)crontabPATH变量与用户的变量不完全相同,所以,建议在cron中的任务要使用绝对路径

                 /root/bin/a.sh


练习1

每周一到周六的凌晨320分,运行tar命令对/etc/目录进行归档另存,存储位置为/backups/etc-YYYY-MM-DD.tar.gz

 

[root@yy ~]# mkdir /backups
[root@yy ~]# crontab –e
20 03 * * 1-6  /bin/tar -czvf /backups/etc.$(date +%Y-%m-%d)tar.gz /etc/
 
[root@yy ~]# crontab -l
20 03 * * 1-6  /bin/tar -czvf /backups/etc.$(date +%Y-%m-%d)tar.gz /etc/


 

练习2

每周日凌晨230分,运行cp命令对/etc/fstab文件进行备份,存储位置为/backup/fstab-YYYY-MM-DD-hh-mm-ss

[root@yy ~]# mkdir /backup
30 02 * * *    /bin/cp  /etc/fstab/backup/fstab-$(date +%Y-%m-%d-%H-%M-%S)
[root@yy ~]# crontab -l
20 03 * * 1-6  /bin/tar -czvf /backups/etc.$(date +%Y-%m-%d)tar.gz /etc/
30 02 * * *      /bin/cp  /etc/fstab /backup/fstab-$(date+%Y-%m-%d-%H-%M-%S)


 

练习3

每天晚上12点,取得/proc/meminfo文件中所有以SM开头的行,追加至/statistics/meminfo.txt文件中,且每天的消息之前,要加上类似===============分隔线;

[root@yy ~]# crontab -l
/bin/echo =============== > /tmp/meminfo.txt&& /bin/egrep "^S|^M" /proc/meminfo >> /tmp/meminfo.txt


 

 


本文出自 “蒲公英的秘密” 博客,请务必保留此出处http://yylinfan.blog.51cto.com/8670422/1692053

linux计划任务

标签:linux计划任务

原文地址:http://yylinfan.blog.51cto.com/8670422/1692053

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!