Crontab没有运行包含echo命令的shell脚本,尽管它可以独立运行

Crontab没有运行包含echo命令的shell脚本,尽管它可以独立运行,shell,echo,crontab,Shell,Echo,Crontab,很抱歉这么长时间,下面是我机器上的相关“env”变量 HOSTNAME=localhost.localdomain SHELL=/bin/bash TERM=xterm-256color HISTSIZE=1000 SUDO_USER=subhasish SUDO_UID=500 USERNAME=root PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin MAIL=/var/spool/mail/subhasish PWD=/backup LA

很抱歉这么长时间,下面是我机器上的相关“env”变量

HOSTNAME=localhost.localdomain
SHELL=/bin/bash
TERM=xterm-256color
HISTSIZE=1000
SUDO_USER=subhasish
SUDO_UID=500
USERNAME=root
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
MAIL=/var/spool/mail/subhasish
PWD=/backup
LANG=en_US.UTF-8
SHLVL=1
SUDO_COMMAND=/bin/su
HOME=/root
LOGNAME=root
LESSOPEN=|/usr/bin/lesspipe.sh %s
SUDO_GID=500
G_BROKEN_FILENAMES=1
_=/bin/env
我的shell脚本只是登录到路由器并获取信息,
这很好,但是对于crontab,它拒绝工作

crontab -l
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
*/2 * * * * /bin/sh /backup/telnet.sh
如果您这样做,tail-f/var/log/cron,它将显示cron正在运行,但不会生成file.txt。手动运行file.txt时,我会得到它

Feb 11 23:26:01 localhost CROND[29053]: (root) CMD (/bin/sh /backup/telnet.sh)
Feb 11 23:28:01 localhost CROND[29074]: (root) CMD (/bin/sh /backup/telnet.sh)
为了测试crontab是否实际工作,我从crontab运行了两行代码,这两行代码工作得很好

#* * * * * touch /backup/testing.txt
#* * * * *  /backup/test.sh

where test.sh is,
cat test.sh
#!/bin/sh
touch /backup/testing.txt
我想从crontab发出回声是不可能的, i、 e.
***/bin/echo“你好,世界!”
不起作用, 但是,
***/bin/echo“你好,世界!”>/backup/test.out
将给出输出test.out。
但是这里echo在脚本中,应该不会有问题

请考虑以下几行:

sed '/telnet/,/term len 0/d' file.txt >> file2.txt
mv file2.txt file.txt
对于cronjob不是很好:您需要放置绝对路径,否则所有内容都将保存在/

我建议将其更改为:

sed '/telnet/,/term len 0/d' /dir/to/your/file/file.txt >> /dir/to/your/file/file2.txt
mv /dir/to/your/file/file2.txt /dir/to/your/file/file.txt

什么操作系统?
/bin/sh--version
告诉你什么?你可以在SO的许多帖子中找到crontab问题。看看那些。。。请记住,shell中的环境和从crontab运行时的环境完全不同!写入当前目录中的
file.txt
。我不确定
cron
是否对它做出了任何承诺(承诺是什么)。尝试使用完整路径名或
cd
ing到正确的位置[root@localhost备份[YO/BI/SH -版本GNU BASH,版本4.1.2(1)-版本(X86YE64-RADHAT-LIUX-GNU)版权(C)2009免费软件基金会,公司许可证GPLV3+:GNU GPL版本3或更高版本,这是免费软件;您可以自由更改和重新分发它。在法律允许的范围内,不存在任何担保。[root@localhost备份]#cat/etc/redhat release CentOS release 6.3(最终版)@AntonKovalenko文件在独立运行时创建良好,cron会因此出现问题吗?非常感谢大家。这确实是个问题。现在已修复:-)。
sed '/telnet/,/term len 0/d' /dir/to/your/file/file.txt >> /dir/to/your/file/file2.txt
mv /dir/to/your/file/file2.txt /dir/to/your/file/file.txt