Bash玩转脚本7之说好的用crontab搞个自动任务
Posted 小杨在玩iOS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bash玩转脚本7之说好的用crontab搞个自动任务相关的知识,希望对你有一定的参考价值。
一、前言
在“【Python融于生活】之我想要保存QQ邮箱富途的附件”文章末尾说到,这种拉取附件的脚本可以使用一个定时任务去做,所以今天就来使用一下crontab,使用一个定时任务去做这件事情。
传送门:
【Python融于生活】之我想要保存QQ邮箱富途的附件 :
http://blog.csdn.net/yang8456211/article/details/78449710
二、相关指令简介
这些东西简单写写,详细的可以自行Google
2.1 crontab是什么?
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。
2.2 crontab的使用
1)查看服务是否启动
sudo launchctl list | grep cron
有进程就说明是有添加到launchctl里。
2)相关指令
crontab -e 编辑当前用户的crontab定时任务
crontab -l 查看当前用户的crontab定时任务
crontab -r 删除当前用户的crontab定时任务
3)crontab 定时任务的格式
* * * * * *
第1个星号表示分钟(0-59)
第2个星号表示小时(0-23)
第3个星号表示日期(0-31)
第4个星号表示月份(0-12)
第5个星号表示星期几(0-6,0是周日,6是周六)
第6个星号表示执行的指令
三、Here we go
1)首先做一个测试,使用crontab执行一个简单的指令
使用crontab -e 打开编辑crontab,第一次的时候会有个询问是否创建对应的文件,创建即可。
在crontab中添加一条:
* * * * * 代表每分钟都会执行
然后tail
一下看看文件是否写入了,看样子写入没有什么问题。
2)开始写定时任务脚本,取名为ycrontab.sh,用一个bash脚本统一管理。
#!/bin/bash
# @auth atany 347702498@qq.com
# blog : http://blog.csdn.net/yang8456211
# useage : for crontab
logFileName=.ycrontab.log
logFilePath=~/$logFileName
run_task()
pyPath="/Users/yangguang/Just_for_fun/Python/proj/Mail/DownLoadMail.py"
python $pyPath >> $logFilePath
echo `date "+%Y-%m-%d %H:%M:%S"`":Auto Run ycrontab start" >> ~/$logFileName
run_task
echo `date "+%Y-%m-%d %H:%M:%S"`":Auto Run ycrontab end" >> ~/$logFileName
脚本做了两件事情:
- 写了一个run_task去跑固定的脚本,这里跑的是下载富途附件的那个脚本。
- 在HOME下面生成了一个隐藏的日志文件,重定向相关的日志到里面去做个记录。
3)尝试用软连接的方式进行加入到crontab中。
之前写的创建软连接脚本又用上了,每次看到很久之前写的脚本还能运行心里就很欣慰。
【Bash玩转脚本1之自己的脚本安装程序】
http://blog.csdn.net/yang8456211/article/details/51020797
创建完软链接(ycrontab)之后使用crontab -e
添加一条数据
等待了一下发现并没有执行,猜测是因为在crontab中不会去读取环境变量吗?那貌似只能Hard Code,虽然我很不喜欢。
4)Hard Code
添加完整的脚本路径:
10分钟执行一次,指定固定的脚本。- -
tail -f ~/.ycrontab.log
看到日志已经记录下来了。
新的附件也已经下载下来了,已经下载了最近的一个11月10号的了。
ok,大功告成。
修改crontab,定在晚上十点吧
* 22 * * * sh /Users/yangguang/GitHub/Script/AtSaiShell/sys/script/ycrontab.sh
四、后续问题
1、可以使用smtp每次任务完成之后给我发个邮件通知一下。
2、为什么在定时任务里面不直接跑python的脚本呢,而是写了一个bash的管理脚本,目前看来其实多了一层用处不大,可以想想这个脚本还可以干一些什么(弹出确认提示之类的?)
杨光(atany)原创,转载请注明博主与博文链接,未经博主允许,禁止任何商业用途。
博文地址:http://blog.csdn.net/yang8456211/article/details/78515927
博客地址:http://blog.csdn.net/yang8456211
本文遵循“署名-非商业用途-保持一致”创作公用协议
以上是关于Bash玩转脚本7之说好的用crontab搞个自动任务的主要内容,如果未能解决你的问题,请参考以下文章