Loading... <p><span style="font-size: 14px">一、前言</span></p> <p style="line-height: 21px"><span style="font-size: 14px">二、本地mail的使用方法</span></p> <p style="line-height: 21px"><span style="font-size: 14px">三、at /batch</span></p> <p style="line-height: 21px"><span style="font-size: 14px">四、cron</span></p> <p style="line-height: 21px"><span style="font-size: 14px">五、小结</span></p> <p style="line-height: 21px"><span style="font-size: 14px"> </span></p> <p style="line-height: 21px"><span style="font-size: 14px">一、前言</span></p> <p style="line-height: 21px"><span style="font-size: 14px">linux 中执行任务计划有三种命令:at ,batch ,cron.其中,at,batch 是一次性执行,而crontab,则是周期性执行;</span></p> <p style="line-height: 21px"><span style="font-size: 14px">作业执行完成后,会通过邮件通知给作业提交者;因此,以下就从邮件说起。</span></p> <p style="line-height: 21px"><span style="font-size: 14px">二、邮件服务</span></p> <p style="line-height: 21px"><span style="font-size: 14px">Centos ,默认会安装并启动邮件服务,仅服务于本地系统。默认是使用25端口,可以用netstat -tan 查看tcp 25 端口,以下介绍下简单的应用:</span></p> <p style="line-height: 21px"><span style="font-size: 14px">写本地邮件</span></p> <p style="line-height: 21px"><span style="font-size: 14px">1、第一种方法</span></p> <p style="line-height: 21px"><span style="font-size: 14px">mail 用户名/</span><span style="font-size: 14px">用户名@主机名</span></p> <p style="line-height: 21px"><span style="font-size: 14px">按照提示写主题,邮件内容</span></p> <p style="line-height: 21px"><span style="font-size: 14px">CTRL+d 提交</span></p> <p style="line-height: 21px"><span style="font-size: 14px">如:</span></p> <p style="line-height: 21px"><span style="font-size: 14px">从用户007,发给root的邮件</span></p> <p style="line-height: 21px"><img src="//cto.wang/usr/uploads/2016/07/20160703161158-82.png" title="1431438930392956.png" alt="blob.png" /></p> <p style="line-height: 21px"><span style="font-size: 14px">2、第二种方法</span></p> <p style="line-height: 21px"><span style="font-size: 14px">把邮件内容先写在一个文件中,使用重定向</span></p> <p style="line-height: 21px"><span style="font-size: 14px">mail -s 主题 用户< 文件 </span></p> <p style="line-height: 21px"><span style="font-size: 14px">或者</span></p> <p style="line-height: 21px"><span style="font-size: 14px">echo 内容 | mail -s 主题 用户</span></p> <p style="line-height: 21px"><img src="//cto.wang/usr/uploads/2016/07/20160703161158-80.png" title="1431438943650219.png" alt="blob.png" /></p> <p style="line-height: 21px"><span style="font-size: 14px">查看本地邮件,使用mail命令,q退出</span></p> <p style="line-height: 21px"><span style="font-size: 14px">mail</span></p> <p style="line-height: 21px"><img src="//cto.wang/usr/uploads/2016/07/20160703161158-50.png" title="1431438951253445.png" alt="blob.png" /></p> <p style="line-height: 21px"><span style="font-size: 14px">如果有邮件,显示如下:</span></p> <p style="line-height: 21px"><img src="//cto.wang/usr/uploads/2016/07/20160703161158-70.png" title="1431438959269917.png" alt="blob.png" /></p> <p style="line-height: 21px"><span style="font-size: 14px">按前面的序号就可以读邮件</span></p> <p style="line-height: 21px"><span style="font-size: 14px">在命令提示符下,输入 help可以查看命令帮助。</span></p> <p style="line-height: 21px"><span style="font-size: 14px">常用的进行邮件回复,删除,另存等。用list可以查看到所有命令</span></p> <p style="line-height: 21px"><span style="font-size: 14px">三、at /batch</span></p> <p style="line-height: 21px"><span style="font-size: 14px">at +(now + count time-units) :time-units 可以是minutes, hours, days)</span></p> <p style="line-height: 21px"><span style="font-size: 14px"> 或者 <span style="font-size: 14px;font-family: 微软雅黑, sans-serif">hh:mm MMDDYY 等准确时间</span></span></p> <p style="line-height: 21px"><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">编辑任务,最后CTRL+d 提交</span></p> <p style="line-height: 21px"><span style="font-size: 14px">先看一个例子</span></p> <p style="line-height: 21px"><img src="//cto.wang/usr/uploads/2016/07/20160703161158-45.png" title="1431438969812233.png" alt="blob.png" /></p> <p style="line-height: 21px"><span style="font-size: 14px">最后一行表示任务7于什么时间执行。</span></p> <p style="line-height: 21px"><span style="font-size: 14px">查看任务</span></p> <p style="line-height: 21px"><span style="font-size: 14px">atq 或 at -l</span></p> <p style="line-height: 21px"><img src="//cto.wang/usr/uploads/2016/07/20160703161158-19.png" title="1431438977521666.png" alt="blob.png" /></p> <p style="line-height: 21px"><span style="font-size: 14px">看到的是任务10,任务7由于已经执行完了,所以看不到。a表示任务队列;要取消还未执行的任务。用artm 任务编号。</span></p> <p style="line-height: 21px"><img src="//cto.wang/usr/uploads/2016/07/20160703161158-53.png" title="1431438986504520.png" alt="blob.png" /></p> <p style="line-height: 21px"><span style="font-size: 14px">任务执行后进入mail,查看邮件,里面有任务执行的结果</span></p> <p style="line-height: 21px"><span style="font-size: 14px">batch 类似于at,只不过会自动在系统空闲时运行。无需指定时间。</span></p> <p style="line-height: 21px"><span style="font-size: 14px">四、cron</span></p> <p style="line-height: 21px"><span style="font-size: 14px">cron daemon,一直工作于后台</span></p> <p style="line-height: 21px"><span style="font-size: 14px">1、使用crontab之前,要查看服务器是否正常</span></p> <p style="line-height: 21px"><img src="//cto.wang/usr/uploads/2016/07/20160703161158-62.png" title="1431439005103028.png" alt="blob.png" /></p> <p style="line-height: 21px"><span style="font-size: 14px">如果状态信息显示为 “is stop",则需要执行”service crone start"</span></p> <p style="line-height: 21px"><span style="font-size: 14px">查看开机crond是否启动</span></p> <p style="line-height: 21px"><img src="//cto.wang/usr/uploads/2016/07/20160703161158-54-1.png" title="1431439012464986.png" alt="blob.png" /></p> <p style="line-height: 21px"><span style="font-size: 14px">说明开机自启动。否则需要使用“ chkconfig on 命令</span></p> <p style="line-height: 21px"><span style="font-size: 14px">cron 是运行crontab里的任务</span></p> <p style="line-height: 21px"><span style="font-size: 14px">2、crond任务分两类:</span></p> <p style="line-height: 21px"><span style="font-size: 14px">系统cron : /etc/crontab</span></p> <p style="line-height: 21px"><span style="font-size: 14px">用户cron: /var/spool/cron 目录中,功能类似于 /etc/crontab</span></p> <p style="line-height: 21px"><span style="font-size: 14px">系统cron</span></p> <p style="line-height: 21px"><span style="font-size: 14px">cat /etc/crontab 可以发现前面定义了环境变量,也就是说,如果以后执行的不在这个环境变量中的命令,会无法执行(可通过写绝对路径,或自定义个环境变量解决)</span></p> <p style="line-height: 21px"><img src="//cto.wang/usr/uploads/2016/07/20160703161158-91.png" title="1431439025358299.png" alt="blob.png" /></p> <p style="line-height: 21px"><span style="font-size: 14px">时间 命令 组成了cron的作业</span></p> <p style="line-height: 21px"><span style="font-size: 14px"> 时间</span></p> <p style="line-height: 21px"><span style="font-size: 14px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">(每小时的第几)分钟 小时 </span> <span style="font-size: 14px;font-family: 微软雅黑, sans-serif">日 月 周几</span></span></p> <p style="line-height: 21px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">7 6 5 4 * 每年4月5号6点7分执行一次</span></p> <p style="line-height: 21px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">*/3 * * * * 每3分钟一次</span></p> <p style="line-height: 21px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">20-40/3 * * * * 每个小时的20-40分钟内每3分钟执行一次</span></p> <p style="line-height: 21px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">3 1 * * 3,5,7 每周3,5,7</span></p> <p style="line-height: 21px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">1 7,9,13 * * * (每天7点9点13点 执行一次)</span></p> <p style="line-height: 21px"><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">命令</span></p> <p style="line-height: 21px"><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">脚本 其他任意可执行程序</span></p> <p style="line-height: 21px"><span style="font-size: 14px">如:</span></p> <p style="line-height: 21px"><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">工作日的工作时间内,每小时执行一次'echo "hello"'</span></p> <p style="line-height: 21px"><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">1 9-18 * * 1-5 /bin/echo "hello"</span></p> <p style="line-height: 21px"><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">用户 cron</span></p> <p style="line-height: 21px"><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">cron </span></p> <p style="line-height: 21px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif"> -l: 列出已经定义的所有任务</span></p> <p style="line-height: 21px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif"> -e: 打开编辑界面定义任务 (可以帮你检查语法,建议使用)</span></p> <p style="line-height: 21px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif"> -r: 移除所有任务 (删除一部分用-e的方式删除行,-r是把文件都删除了)</span></p> <p style="line-height: 21px"><span style="font-size: 14px"> </span><span style="font-size: 14px">管理员可以定义任务给用户</span></p> <p style="line-height: 21px"><span style="font-size: 14px"> <span style="font-size: 14px;font-family: 微软雅黑, sans-serif">crontab -u USERNAME -e</span></span></p> <p style="line-height: 21px"><span style="font-size: 14px"> 同样,可以查看删除更改</span></p> <p style="line-height: 21px"><span style="font-size: 14px">五、小结</span></p> <p style="line-height: 21px"><span style="font-size: 14px">以上大概描述了常用任务创建,修改,删除等,也说明了常用的系统内mail使用方法。</span></p> <p style="line-height: 21px"><span style="font-size: 14px">在linux里,一切皆文件,增删查改文件,以及文件的保存位置还是需要记清楚。</span></p> <p style="line-height: 21px"><span style="font-size: 14px">如果需要定义秒级别的任务,则超出了cron的功能,需要用sleep命令进行补充使用。</span></p> <p style="line-height: 21px"><span style="font-size: 14px">还有不完善的地方,以后学习中继续体会。</span></p> <p><span style="font-size: 14px"> </span></p> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信