一、邮件收发
SMTP服务启动与否状态查看:netstat -nlptu "25"端口是否被监听
默认收发邮件仅能在本机上的用户间进行,且只能通过回环接口上的地址进行
mail命令:
收邮件:mail
q:退出
N:查看第N封邮件
发邮件给指定用户:
echo "邮件内容"|mail -s "邮件标题" 邮件地址
二、一次任务计划
1、at
用法: at TIME
提交任务:Crtl+d
作业结果:以邮件形式发送系统上的当前用户
TIME的格式:
精确时间: HH:MM
模糊时间: now+N(时间单位min,hour,day) #还有很多单位,不支持秒
noon(12点),midnight(12:00),teatime(16:00) ,tomorrow
作业队列查看:at -l,atq
删除尚未运行的作业:at -d JOBNUM,at rm JOBNUM #JOBNUM用at -l 可以看到
at -f /FILE TIME #把at要执行的任务放置于文件中,让at读取此文件作为要运行的任务
[root@Node3 ~]# at 22:10 at> ls /tmp/src at> <EOT> job 1 at 2016-12-03 22:10
查看结果:
>N 6 root Sat Dec 3 22:10 17/523 "Output from your job 1" & 6 Message 6: From root@Node3.localdomain Sat Dec 3 22:10:00 2016 Return-Path: <root@Node3.localdomain> X-Original-To: root Delivered-To: root@Node3.localdomain Subject: Output from your job 1 To: root@Node3.localdomain Date: Sat, 3 Dec 2016 22:10:00 +0800 (CST) From: root@Node3.localdomain (root) Status: R fstab fstab11 mariadb-10.1.16-linux-x86_64.tar.gz test.sh &
2、batch
用法和功能和at一样但bath无须指定时间,会自动在将来的某个系统资源较空闲的时间点来运行
三、周期性任务计划
1、crond
依赖于后台服务,查看运行状态:service crond status
cron任务有两类:
系统cron:/etc/crontab
用户cron:定义在/var/spool/cron/目录中与用户名同名的文件中
1)每行定义一个独立的任务
2)建议在定义cron任务时,所用到的命令使用绝对路径,如果是脚本,脚本中的命令使用绝对路径,或自定义一个完整的环境变量
格式:
时间点(周期性任务的时间点) user-name(用户) command(要运行的任务)
时间点:
分钟 小时 天 月 周几
每年的 4 7 3 2 *
每月的 20 18 6 * *
每天的 20 9 * * *
每小时的 3 * * * *
每分钟的 * * * * *
每周的 16 17 * * 3
5个时间点的有效取值范围:
分钟:0-59;
小时:0-23
日:1-31
月:1-12
周几:0-7
时间表示法:
*: 对应时间点有效取值范围内的每个时间点;
-: 一个特定连续时间范围, 3-7
,:一个离散的时间点, 3,5,7
*/N:有效时间范围内的每多少时间;用于指定频率;
1-30/4,
*/4
5 */3 * * * /bin/echo "howdy"
5 7 * * 1-5 /bin/echo "howdy"
注意:
1、几月几号与周几,不建议同时使用;
2、每个时间位都应该使用其可用的有效取值范围,*表示使用其所有有效取值
3、*/N在对应的时间位有效值上每N个时间单位一次
*/7 * * * * 注意:并不能精确做到每7分钟一次
任务运行后的结果,邮件发送给任务相关用户;丢弃邮件通知:输出重定向
COMMAND &>/dev/null
2、cron任务的定义
用户cron任务的定义:
会自动检查语法错误,
crontab命令:
-l 列出当前用户的所有任务
-e 打开编辑界面定义任务
-r 移除所有任务
-u USERNAME #管理指定用户crontab
[root@Node3 ~]# crontab -u xj -l no crontab for xj [root@Node3 ~]# crontab -u xj -r no crontab for xj [root@Node3 ~]# crontab -u xj -e no crontab for xj - using an empty one crontab: no changes made to crontab
注意:如果crontab中的用户命令中需要使用“%”要用“\”转义
系统cron的定义:
直接编辑/etc/conttab文件即可,需要添加运行任务的用户
四、anacron
为cron提供了补充机制
系统每次开机时,anacron会检查crond中的所有任务在过去应该执行任务的时候是否被执行,没执行的话会尽快执行该任务
0 */4 * * * /bin/cp -a /etc /tmp/etc-`date '+\%Y\%m\%d\%H\%M'`
0 0 * * 2,4,6 /bin/cp -a /var/log/messages /tmp/messages_logs/messages-`date '+\%Y\%m\%d'`
0 */2 * * * /bin/cat /proc/meminfo|grep '^S' &>>/stats/memory.txt
0 9-18/2 * * 1-5 /bin/echo "howdy"
转载于:https://blog.51cto.com/xiexiaojun/1693642