一、前言
二、本地mail的使用方法
三、at /batch
四、cron
五、小结
一、前言
linux 中执行任务计划有三种命令:at ,batch ,cron.其中,at,batch 是一次性执行,而crontab,则是周期性执行;
作业执行完成后,会通过邮件通知给作业提交者;因此,以下就从邮件说起。
二、邮件服务
Centos ,默认会安装并启动邮件服务,仅服务于本地系统。默认是使用25端口,可以用netstat -tan 查看tcp 25 端口,以下介绍下简单的应用:
写本地邮件
1、第一种方法
mail 用户名/用户名@主机名
按照提示写主题,邮件内容
CTRL+d 提交
如:
从用户007,发给root的邮件
2、第二种方法
把邮件内容先写在一个文件中,使用重定向
mail -s 主题 用户< 文件
或者
echo 内容 | mail -s 主题 用户
查看本地邮件,使用mail命令,q退出
如果有邮件,显示如下:
按前面的序号就可以读邮件
在命令提示符下,输入 help可以查看命令帮助。
常用的进行邮件回复,删除,另存等。用list可以查看到所有命令
三、at /batch
at +(now + count time-units) :time-units 可以是minutes, hours, days)
或者 hh:mm MMDDYY 等准确时间
编辑任务,最后CTRL+d 提交
先看一个例子
最后一行表示任务7于什么时间执行。
查看任务
atq 或 at -l
看到的是任务10,任务7由于已经执行完了,所以看不到。a表示任务队列;要取消还未执行的任务。用artm 任务编号。
任务执行后进入mail,查看邮件,里面有任务执行的结果
batch 类似于at,只不过会自动在系统空闲时运行。无需指定时间。
四、cron
cron daemon,一直工作于后台
1、使用crontab之前,要查看服务器是否正常
如果状态信息显示为 “is stop",则需要执行”service crone start"
查看开机crond是否启动
说明开机自启动。否则需要使用“ chkconfig on 命令
cron 是运行crontab里的任务
2、crond任务分两类:
系统cron : /etc/crontab
用户cron: /var/spool/cron 目录中,功能类似于 /etc/crontab
系统cron
cat /etc/crontab 可以发现前面定义了环境变量,也就是说,如果以后执行的不在这个环境变量中的命令,会无法执行(可通过写绝对路径,或自定义个环境变量解决)
时间 命令 组成了cron的作业
时间
(每小时的第几)分钟 小时 日 月 周几
7 6 5 4 * 每年4月5号6点7分执行一次
*/3 * * * * 每3分钟一次
20-40/3 * * * * 每个小时的20-40分钟内每3分钟执行一次
3 1 * * 3,5,7 每周3,5,7
1 7,9,13 * * * (每天7点9点13点 执行一次)
命令
脚本 其他任意可执行程序
如:
工作日的工作时间内,每小时执行一次'echo "hello"'
1 9-18 * * 1-5 /bin/echo "hello"
用户 cron
cron
-l: 列出已经定义的所有任务
-e: 打开编辑界面定义任务 (可以帮你检查语法,建议使用)
-r: 移除所有任务 (删除一部分用-e的方式删除行,-r是把文件都删除了)
管理员可以定义任务给用户
crontab -u USERNAME -e
同样,可以查看删除更改
五、小结
以上大概描述了常用任务创建,修改,删除等,也说明了常用的系统内mail使用方法。
在linux里,一切皆文件,增删查改文件,以及文件的保存位置还是需要记清楚。
如果需要定义秒级别的任务,则超出了cron的功能,需要用sleep命令进行补充使用。
还有不完善的地方,以后学习中继续体会。
原创文章,作者:麦鲸,如若转载,请注明出处:http://www.178linux.com/4307
评论列表(3条)
麦鲸这次作品质量较前几次高出许多,如果加上段落标识和字体大小精细调整会更出色
@stanley:谢谢老师 :lol:
文章有干货,但排版方面最好优化下。