Bash玩转脚本7之说好的用crontab搞个自动任务
来源:互联网 发布:steam 淘宝 编辑:程序博客网 时间:2024/05/22 02:29
一、前言
在“【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 crontablogFileName=.ycrontab.loglogFilePath=~/$logFileNamerun_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" >> ~/$logFileNamerun_taskecho `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搞个自动任务
- Bash玩转脚本4之搞一套完整的Android反编译与分包工具
- Bash玩转脚本2之自己的脚本管理工具
- Bash玩转脚本6之Git脚本
- Bash玩转脚本1之自己的脚本安装程序
- Bash玩转脚本5之Windows上修改环境变量的脚本系统
- Bash玩转脚本5之Windows上修改环境变量的脚本系统
- bash编程之 crontab 定时任务
- 玩转Bash脚本:选择结构之if
- 玩转Bash脚本:选择结构之case
- 玩转Bash脚本:循环结构之for循环
- 玩转Bash脚本:循环结构之while循环
- Bash玩转脚本3之几个指令有趣的筛选京东评价
- Shell脚本之crontab定时任务
- Shell脚本之crontab定时任务
- Shell脚本之crontab定时任务
- Crontab定时任务之执行PHP脚本
- 玩转Bash脚本:test测试语句
- 目录探测脚本
- Netty学习三:线程模型
- Diary IV
- rbac框架
- MFC中使用CString时遇见的问题
- Bash玩转脚本7之说好的用crontab搞个自动任务
- 201711122237->mysql新增数据
- [LeetCode] Unique Paths II
- 数据库集群请查看如下网址
- 汇编指令整理
- 简单的TCP服务器与客户端通讯
- js 使用正则表达式验证url地址
- 【菜鸟笔记C】sprintf、fprintf和printf
- form表单验证