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

一次性任务计划: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后有以下信息

[[email protected] ~]# 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‘)

[[email protected] ~]# mkdir -p /backups/etc
[[email protected] ~]# crontab e
[[email protected] 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‘)

[[email protected] etc]# mkdir -p /backups/fstab
[[email protected] etc]# crontab e
[[email protected] 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

[[email protected] etc]# mkdir -p /backups/fstab
[[email protected] statistics]# crontab e
[[email protected] statistics]# crontab -l
6 0 * * *   /bin/egrep /proc/meminfo "^[S,M].*" >> /statistics/meminfo.txt && echo ========================== >> /statistics/meminfo.txt
时间: 2024-11-05 00:48:05

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

Linux周期性任务计划详解

一次性任务执行: at,batch at: 交互式:让用户在at>提示符输入多个要执行命令: 批处理:将任务的各命令写入文件由at进行调用: 使用格式: at TIME at > Ctrl+d:提交任务 at作业有队列:使用单个字母表示 查看作业:at -l =atq [[email protected] ~]# at 10:46 at> ls -ld /etc at> <EOT> job 1 at 2015-08-25 10:46 [[email protected]

Linux上的计划at和cron

at命令 使用之前确认atd服务已经启动 [[email protected] tmp]# ps -ef | grep atd root     35241     1  0 16:15 ?        00:00:00 /usr/sbin/atd [[email protected] tmp]# /etc/init.d/atd status    #运行状态查看 atd (pid  35241) is running... 启动命令 [[email protected] tmp]# /etc

Linux周期性任务计划

一.周期性任务计划类型: 1.一次性的任务执行(at,batch )--不重要: A.at: 交互式:让用户在at>提示符下输入多个要执行的命令. 如:#at 10:02,进入at命令提示符,如下: #at > ls /usr/local #at > cat /etc/passwd #提交任务:ctrl+d #查看任务计划列表:at -l #删除一个尚未执行作业的方法:at -d job_num或者atrm job_num 批处理:将任务的各命令写入文件,由at进行调用,格式:at -f

周期性任务计划详解

linux周期性任务计划: 相关命令 未来的某时间点执行一次某任务:at命令, batch命令. 周期性运行某任务:crontab命令 执行结果:会通过邮件发送给用户 查看linux的邮件端口是否开启: 25号端口是 smtp #简单邮件传输协议(SMTP) [centos@web ~]$ ss -tnl | grep '25' \LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 100 ::1:25 :::* [centos@web ~]$ netstat -tnl

Linux 任务计划 at,cron

linux上的任务计划: 一种是突发性的,就是未来某个时间点一次性执行某任务 相关命令:at , batch 一种是周期性的,就是每个一定的周期执行某任务 相关命令:crontab at 命令:处理仅需要执行一次就结束的任务 at 命令的执行必须要有atd服务的支持,启动atd服务. 注意:centos7 中对于服务的配置有变化,以下命令仅适用7之前版本,这部分正在查资料,很快补充说明. #开启atd服务 [[email protected] ~]# /etc/init.d/atd restar

周期性任务计划与cron

一.邮件收发 服务启动与否状态查看:netstat -nlptu "25"端口  smp服务正常 默认收发邮件仅能在本机上的用户间进行,且只能通过回环接口上的地址进行 mail 收邮件:mail q:退出 N:查看第N封邮件 发邮件给指定用户: mail USERNAME[@HOSTNAME] -s "SUBJECT" echo | mail 二.Linux任务计划  一次性任务计划:at,batch 周期性任务计划:cron at:   at TIME 提交任务:

at、cron周期性任务计划详解

一.一次性任务计划:at.batch 1.batch:系统自行选择在系统资源较空闲的时间去执行指定的任务 用法类似于at,但只要提交所需执行的命令 2.at:指定未来的某时间点执行一次某任务 (1)用法格式:at   [OPTION]...   TIME 1)TIME格式: HH:MM [YYYY-mm-dd]:直接指明具体的时间 noon,midnight, teatime:中午.午夜.下午茶时间(下午四点左右) tomorrow:明天 now+#:现在之后的多久,可使用表示单位为minute

Linux自学笔记——Linux周期性计划任务

未来的某时间点执行一次任务:at,batch 周期性运行某任务:crontab 执行结果:会通过邮件形式发送给用户: 本地邮件服务: smtp:simple mail transmission protocol: pop3:post office procotol: imap4:internet mail access procotol: mail命令: mailx - send and receive Internet mail: MUA:mail user agent,用户收发邮件的工具程序

周期性计划(一个cron守护进程):

周期性计划(一个cron守护进程): [email protected]:/etc# ps -ef | grep cron root 903 1 0 16:25 ? 00:00:00 /usr/sbin/cron -f root 16162 6459 0 22:08 pts/1 00:00:00 grep --color=auto cron cron是一个可以根据时间,日期,月份,星期的组合的周期性执行的守护进程. (可以停掉和重启) [email protected]:/etc# servic