ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Ubuntu中crontab中遇到的sh脚本一些问题

2022-06-13 19:03:25  阅读:169  来源: 互联网

标签:bin dash log crontab cron sh Ubuntu


问题一:

问题描述:
在写一个脚本循环时候,出现“let:not found”,这是因为在ubuntu默认是指向bin/dash解释器的,dash是阉割版的bash,其功能远没有bash强大和丰富.并且dash不支持let和i++等功能.
解决办法:
打开一个终端输入:
sudo dpkg-reconfigure dash 选择 "否", 表示用bash代替dash

问题二:

手动运行sh脚本可以,但是做定时任务总是无法执行。原因是crontab没有加载运行环境,导致sh脚本无法执行,所以在中间加入./etc/profile;,放到crontab -e的文本中,获取环境变量。

以下是crontab -e代码

SHELL = /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin


* * * * *  ./etc/profile; /bin/sh /home/hjj/cron.sh  

问题三:

Ubuntu默认是不打开crontab的日志文件的。
控制台输入

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

打开文件,在文件中找到cron.*,把前面的#去掉,保存退出,输入

sudo service rsyslog restart

重启系统日志,然后稍微等下应该就能在/var/log目录下看到cron.log,vi cron.log就可以查看cron运行日志了。

问题四:

/var/log/corn.log日志显示如下图:

原因: cron把屏幕输出都发送到email,当前环境并未安装email server,于是系统报错。

sudo apt-get install -y postfix

# 选择并回车
Internet Site

# postfix继续安装,完毕后自动启动

安装成功后 (内容已经发送到/var/mail/root中)

标签:bin,dash,log,crontab,cron,sh,Ubuntu
来源: https://www.cnblogs.com/safe-rabbit/p/16371932.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有