首页 > 代码库 > linux crontab定时任务运行shell脚本(shell执行sql文件)
linux crontab定时任务运行shell脚本(shell执行sql文件)
今天做个linux定时任务(每晚12点把表汇总)。
顺便写个博客记录一下~~
为什么用linux定时任务,而不是在项目加定时任务呢?原因就是防止因为各种原因项目崩溃。。所以就用了更加稳定的linux定时任务(我是这么想的( ^_^ ))。
起初我感觉很简单,以为顶多半小时就搞定了,,,结果从10点弄到12点半才搞定(主要是我英语太渣和数据库报错导致)。。。
︿( ̄︶ ̄)︿废话到此结束---------------
crontab 格式 * * * * * XXX
分 时 天 月 星期 命令
符号 “*”代表取值范围内的数字,
“/”代表”每”,
“-”代表从某个数字到某个数字,
“,”分开几个离散的数字
例子
30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。 ]
现在来介绍我的具体操作步骤(包括编写shell脚本 并执行编写的sql文件)
打开linux终端>进入cat(我自己创建的)目录>创建crontab文件夹 并进入> 执行命令 crontab -e进入编辑状态编写crontab表达式 1 * * * * /cat/crontab/sbin.sh(每天凌晨1点执行total.sh脚本)>
Ctrl+X 建退出>Yes(保存)>回车> crontab -l (如果能看到你刚才保存的crontab,就成功了~~)
(。。。浪费时间的原因是我的保存退出和博客上那些写的不一样。。)往下看????
例子:
假设当前用户是root,要建立root用户的定时任务
crontab -e
选择编辑器,编辑定时任务(这里假设是编辑器是vi)
按i进入编辑模式
1 * * * * /cat/crontab/sbin.sh
按esc退出编辑模式进入普通模式,输入:x或:wq保存退出
上几张图~~
简单的执行sql的shell脚本
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
/sbin/service crond start
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=/ //使用者运行的路径,这里是根目录
# run-parts
01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本
linux crontab定时任务运行shell脚本(shell执行sql文件)