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

linux周期性任务计划 at及cron的简单总结

时间:2015-09-08 07:16:10      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:linux   接口   收发邮件   计划   周期性   

一次性任务计划:at,batch

周期性任务计划:cron

at:简单用法

at TIME

at>

提交任务:^c+d

作业结果:以邮件形式发送系统上的当前用户


邮件收发:

服务启动与否状态查看命令:

netstat -tnl |grep ":25"

默认收发邮件仅在本机上的用户间进行,且只能通过回环接口上的地址进行。

# mail

q:退出

N:查看第N封邮件


发邮件给指定用户(系统内):

# mail USERNAME[@HOSTNAME]

-s "SUBJECT"         主题

echo | mail              也可以使用管道

TIME的格式

精确时间:

HH:MM

模糊时间:

now+#UNIT

noon , midnight,teatime, tomorrow

作业队列查看:

at -l, atq

删除尚未运行的作业:

at -d [JOB_NUM], at rm

也可以 把at要执行的所有任务放置于文件中,让at读取此文件作为要运行的任务(适用量大的作业)

at -f /PATH/TO/SOMEFILE TIME

batch:无须指定时间,会自动在将来的某个系统资源较空闲的时间点运行


周期性任务计划:cron

依赖于后台服务,查看运行状态

service crond status          CentOS {5,6}版本查看命令,如有以下输出结果则可使用cron

crond (pid 1680) is running

cron任务有两类:

系统cron: /etc/crontab

用户cron: 定义在/var/spool/cron/目录中与用户名同名的文件中

每行定义一个独立的任务:

查看/etc/crontab后有以下信息

[root@localhost ~]# cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

# 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

由以下3部分组成:

时间点(周期性任务)

user-name:用户身份

command:要运行的任务

注意:建议在定义cron任务时,所用到的命令使用绝对路径,或自定一个拥有完整路径的环境变量。


时间表示法:

1.每个时间为都应该使用期可用的有效取值范围内的值,*用于表示使用期所有有效取值,

2. */#:在对应的时间位有效取值上每#  个时间单位一次

注意:定义分钟时的取值范围需能被60整除

3. 连续时间点: -

4.离散时间点:,

任务运行后的结果:邮件发送给任务相关用户:

丢弃邮件通知:输出重定向

COMMAND > /dev/null

COMMAND &> /dev/null

COMMAND >  /dev/null 2>&1

/dev/null:软件模拟出的设备, bit bucket,数据黑洞

用户cron任务的定义:

crontab命令:

-l:列出已定义的所有任务

-e:打开编辑器

-r:remove,移除所有任务

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


注意:crontab文件内的%需转义,或者用单引号对其引用。


作业::

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

20 3 * * 1-6 /bin/cp  /etc  /backups/etc-$(date+‘%Y-%m-%d‘)

[root@localhost ~]# mkdir -p /backups/etc
[root@localhost ~]# crontab e
[root@localhost etc]# crontab -l
20 3 * * 1-6  /bin/cp /etc /backups/etc-$(date +‘%Y-%m-%d‘)


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

30 2 * * 7   /bin/cp /etc/fstab /backup/fstab-$(date +‘%Y-%m-%d-%H-%M-%S‘)

[root@localhost etc]# mkdir -p /backups/fstab
[root@localhost etc]# crontab e
[root@localhost etc]# crontab l
30 2 * * 7   /bin/cp /etc/fstab /backup/fstab-$(date +‘%Y-%m-%d-%H-%M-%S‘)


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

6 0 * * *   /bin/egrep /proc/meminfo "^[S,M].*" >> /statistics/meminfo.txt && echo ========================== >> /statistics/meminfo.txt

[root@localhost etc]# mkdir -p /backups/fstab
[root@localhost statistics]# crontab e
[root@localhost statistics]# crontab -l
6 0 * * *   /bin/egrep /proc/meminfo "^[S,M].*" >> /statistics/meminfo.txt && echo ========================== >> /statistics/meminfo.txt


linux周期性任务计划 at及cron的简单总结

标签:linux   接口   收发邮件   计划   周期性   

原文地址:http://8162402.blog.51cto.com/8152402/1692487

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