linux计划任务问题:shell文件可以手动执行,计划任务却一直失败!

今天的心情完全能用一万个草泥马来形容!

为了添加个计划任务,我特么从上午搞到凌晨现在!

没有办法,我刚接触linux,因为不熟,遇到各种坑,为了搞定它,研究了wdcp控制面板、linux常用命令、shell命令、vim命令、crontab任务计划命令。。。。。个中的艰辛真是有苦难言!我特么就感觉自己像爱迪生发明灯泡一样,进行了无数次尝试!$^%$%^&%^&*^*&

言归正传,最终我的问题的结症是:shell 脚本的格式问题!shell脚本是我在windows电脑上编辑出来的,格式默认是dos格式,而linux里面的计划任务只能执行unix格式的 。(不过直接在linux窗口下执行sh脚本好像是没有问题的!)

如果shell脚本是dos格式,则追踪到的结果报如下错误:

/bin/bash^M: bad interpreter: No such file or directory

判断你的shell脚本就近是dos格式还是unix格式的方法是:

///


在执行shell脚本时提示这样的错误主要是由于shell脚本文件是dos格式,即每一行结尾以\r\n来标识,而unix格式的文件行尾则以\n来标识。
  查看脚本文件是dos格式还是unix格式的几种办法。
(1)cat -A filename  从显示结果可以判断,dos格式的文件行尾为^M$,unix格式的文件行尾为$。
(2)od -t x1 filename 如果看到输出内容中存在0d 0a的字符,那么文件是dos格式,如果只有0a,则是unix格式。
(3)vi filename打开文件,执行 : set ff,如果文件为dos格式在显示为fileformat=dos,如果是unxi则显示为fileformat=unix。

  解决方法:
(1)使用linux命令dos2unix filename,直接把文件转换为unix格式
(2)使用sed命令sed -i "s/\r//" filename  或者 sed -i "s/^M//" filename直接替换结尾符为unix格式
(3)vi filename打开文件,执行 : set ff=unix 设置文件为unix,然后执行:wq,保存成unix格式。


或者参考这篇文章:http://www.cnblogs.com/zyb-pp/p/6429448.html

///


最后有几点补充事项说一下:

1、用crontab做任务计划时,最好将执行结果转向(追踪写入)到第三方文件,如我的做法:

*/1 */1 * * * /www/wdlinux/wdcp/shell/sendemail.sh >>/home/mylog.txt

(你可以通过 cat /home/mylog.txt 方法查看执行结果。)

2、清空日志文件的命令: echo >/home/mylog.txt

3、crontab 常用命令见这里:http://www.cnblogs.com/sxmcACM/p/3789145.html

4、linux 几个与任务相关的小命令:

查看已经创建的任务计划:crontab -l

查看任务执行的历史记录:tail   /var/log/cron

实时查看任务计划执行记录:tail -f  /var/log/cron


5、vi 命令:http://www.cnblogs.com/softwaretesting/archive/2011/07/12/2104435.html



。。。。。。。。。。。。。。。。。。。。。。。。。


今天一口气接收如此大量的信息,脑壳都快炸了!睡觉了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值