Cron+shell执行定时任务

以自动git pull为例 定时执行git操作

1.编写shell脚本

创建一个shell文件夹,统一管理

mkdir sh_file
cd sh_file

创建.sh文件

vim pullcoding.sh

设定执行命令

#git pull代码脚本
#选择项目仓库目录
cd /var/www/project/
#执行git pull命令拉取master分支,并将执行结果追加到日志文件
#git pull --rebase origin master >> /tmp/git.log

#拉取线上,并直接覆盖本地,避免冲突
git fetch
git reset --hard origin/master
git pull >> /tmp/git.log

#为方便查看,追加一行日期
date >> /tmp/git.log
#同样,追加分割线
echo "==========" >> /tmp/git.log

测试.sh文件

./pullcoding.sh

2.使用cron定时执行shell脚本

检查cron,查看已有的定时任务列表

crontab -l

编写定时任务

crontab -e

追加命令,写入文件中

#pull code
# 这里表示每2分钟执行一次.sh脚本,并将执行结果输出到git.log文件中
*/1 * * * * /var/www/shell_file/pullcoding.sh >> /tmp/git.log

^O -> enter 保存
^X 退出
重启cron

service cron restart

查看git.log可以检查是否执行

cat /tmp/git.log

3.cron命令解析

安装:apt-get install cron
启动:service cron start
重启:service cron restart
停止:service cron stop
检查状态:service cron status
查询cron可用的命令:service cron
检查Crontab工具是否安装:crontab -l
编写cron命令 crontab -e
crontab每分钟定时执行:

*/1 * * * * service mysqld restart //每隔1分钟执行一次

*/10 * * * * service mysqld restart //每隔10分钟执行一次

crontab每小时定时执行:

0 */1 * * * service mysqld restart //每1小时执行一次

0 */2 * * * service mysqld restart //每2小时执行一次

crontab每天定时执行:

0 10 * * * service mysqld restart //每天10点执行

30 19 * * * service mysqld restart //每天19点30分执行

crontab每周定时执行:

0 10 * * 1 service mysqld restart //每周一10点执行

30 17 * * 5 service mysqld restart //每周五17点30分执行

crontab每年定时执行:

0 10 1 10 * service mysqld restart //每年的10月1日10点执行

0 20 8 8 * service mysqld restart //每年的8月8日20点执行

打开cron日志

vim /etc/rsyslog.d/50-default.conf

将#cron.*注释打开,保存退出

cron.* /var/log/cron.log

重启日志

service rsyslog restart

查看日志

cat /var/log/cron.log
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值