从报错no crontab for user/ vi exit with status 1看crontab

本文探讨了在使用Crontab配置定时任务时遇到与Vi编辑器的兼容性问题及解决方案。通过分析Crontab的工作原理和服务机制,揭示了问题产生的根本原因,并提供了具体的解决步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述: 启动定时脚本check mac 机器与jenkins平台的连接

crontab -e 
*/5 * * * * sh check.sh

:q退出后报错形如:

为什么执行crontab命令出现的报错是和vi相关呢?crontab背后是如何实现的?发现起初使用crontab并未真实理解,只是使用。

原因:

Google后,很多回答在说修改vim配置等,https://superuser.com/questions/359580/error-adding-cronjobs-in-mac-os-x-lion

详解crontab

Linux系统会进行例行性检查等,依托的是cron系统服务。用户控制例行性工作调度使用crontab,核心利用的也是cron服务。

crontab权限控制
/etc/cron.allow
/etc/cron.deny

工作调度记录
/var/spool/cron  #cron服务分钟级别读取
/etc/crontab       #cron服务分钟级别读取
/var/log/cron    #日志

crontab -e        #实际执行 /usr/bin/crontab,写入调度记录文件

/etc/init.d/crondrestart #重启crond服务

和vi有什么关系呢?关系是用户新增的任务调度会被记录到/var/spool/cron/[username]文件中(username必须先拥有权限,/etc/cron.allow和/etc/cron.deny中指定),此时vi出现,crontab默认调用vi打开文件。

出错原因:

vim已替代了vi,机器上执行vi时一般是alias到vim,而crontab仍是调用vi,则显示报错。

最终解决方法:

最后是命令行下执行如下命令解决了问题。

alias crontab="VIM_CRONTAB=true /usr/bin/crontab"

附加:

这次还看到几项使用crontab的注意事项也是之前没有关注到的,记录下。

  • 资源分配

crontab配置例行性工作,若集中在相同的时间启动,某个时间段机器会变得不堪重负,建议是划分开执行时间段

  • 取消不必要输出选项

这一点是以前被忽略的。当有执行结果或者执行的选项中有输出的数据时,该数据将会mail给MAILTO(/etc/crontab文件中指定),所以会导致一直发送邮件出来。若必须有输出选项,则在配置时可指向 /dev/null垃圾桶

 

转载于:https://www.cnblogs.com/matric/p/7384101.html

[root@prd-zyzb-m-zone-proxy ~]# systemctl restart sshd Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xeu sshd.service" for details. [root@prd-zyzb-m-zone-proxy ~]# journalctl -xeu journalctl: option requires an argument -- 'u' [root@prd-zyzb-m-zone-proxy ~]# journalctl -xe ░░ An ExecStart= process belonging to unit sshd.service has exited. ░░ ░░ The process' exit code is 'exited' and its exit status is 255. Mar 26 16:20:55 prd-zyzb-m-zone-proxy systemd[1]: sshd.service: Failed with result 'exit-code'. ░░ Subject: Unit failed ░░ Defined-By: systemd ░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel ░░ ░░ The unit sshd.service has entered the 'failed' state with result 'exit-code'. Mar 26 16:20:55 prd-zyzb-m-zone-proxy systemd[1]: Failed to start OpenSSH server daemon. ░░ Subject: A start job for unit sshd.service has failed ░░ Defined-By: systemd ░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel ░░ ░░ A start job for unit sshd.service has finished with a failure. ░░ ░░ The job identifier is 3203058 and the job result is failed. Mar 26 16:21:01 prd-zyzb-m-zone-proxy CROND[2143556]: (yunqiao) CMD (/opt/yunqiao/itcloudagent/bin/daemon >/dev/null 2>&1 &) Mar 26 16:21:02 prd-zyzb-m-zone-proxy CROND[2143555]: (yunqiao) CMDEND (/opt/yunqiao/itcloudagent/bin/daemon >/dev/null 2>&1 &) Mar 26 16:21:02 prd-zyzb-m-zone-proxy crontab[2143562]: (yunqiao) LIST (yunqiao) Mar 26 16:21:02 prd-zyzb-m-zone-proxy crontab[2143566]: (yunqiao) LIST (yunqiao) Mar 26 16:21:13 prd-zyzb-m-zone-proxy crontab[2143796]: (yunqiao) LIST (yunqiao) Mar 26 16:21:13 prd-zyzb-m-zone-proxy crontab[2143800]: (yunqiao) LIST (yunqiao) ~
03-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值