Ubuntu crontab定时执行shell脚本

Ubuntu crontab定时执行shell脚本

  • 最近打算让服务器定时的编译项目源码,及时产生二进制文件。写好了编译脚本后,就需要用到crontab设置定时任务。(如果需要更强大的功能,就要考虑用Jenkins了)
Crontab与Cron
  • 使用crontab命令来配置cron进程。cron进程是Linux中的一个守护进程,一般用来执行系统中的周期性任务。
  • Cron服务命令
# 查看服务状态
sudo  service cron status
# 开启服务
sudo service cron start
# 停止服务
sudo service cron stop
# 重启服务
sudo service cron restart
  • 设置定时任务
# 如果服务没有开启,开启该服务
sudo service cron restart
# 输入该命令,修改crontab配置。第一次输入该命令时,会提示选择编辑工具,一般选择vim(vi)即可。
crontab –e
# 在上一步打开的终端中(第一次使用该命令的话,在选择编辑工具后),输入下面的内容
# 该内容表示,在每天的0点0分,执行脚本MakeProject.sh
0 0 * * * /home/linduo/Project/MakeProject.sh
  • Crontab定时任务命令格式
# 格式如下
# minute hour day-of-month month-of-year day-of-week commands
# 00-59 00-23 01-31 01-12 0-6 (0 is sunday) 

# 每天0点0分,执行指定脚本
0 0 * * * /home/linduo/Project/MakeProject.sh

# 星期1到星期5,11点30分,执行指定脚本
30 11 * * 1,2,3,4,5 /home/linduo/Project/MakeProject.sh

# 星期1、星期3、星期5,23点00,执行指定脚本,并将内容重定向到文件(使用日期命名)
# 获取日期命令,必须使用如下格式,否则会导致cron执行失败。
00 23 * * 1,3,5 /home/linduo/Project/MakeProject.sh all >> "/home/linduo/Project/Build_$(date +"\%Y-\%m-\%d")".log 2>&1
相关问题
  • 打开cron.log:Unbutun默认是关闭这个log的,需要手动打开,一遍查看cron执行状态。
# 找到cron.log行,取消注释
sudo vim /etc/rsyslog.d/50-default.conf
# 重启服务
sudo  service rsyslog  restart
# 查看cron.log
vim /var/log/cron.log
  • No MTA installed, discarding output:cron默认把屏幕输出到email中,而ubuntu默认没有装MTA。导致cron执行失败,并在cron.log中输入该内容。将输出重定向到文件即可解决该问题(参见上面将内存重定向到文件的命令)
  • cron常用命令
# 查看cron任务
crontab -l
# 为指定用户配置cron任务
crontab -e -u linduo
# 删除所有cron任务
 crontab -r
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林多

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值