Cron不运行bash脚本

我有cron

SHELL = /斌/庆典

PATH =在/ usr / local / sbin中:在/ usr / local / bin目录:/ sbin目录:/ bin中:/ usr / sbin目录:在/ usr / bin中

* * * * * root  /usr/bin/flock -xn /var/lock/script.lock -c '/bin/bash /root/Dropbox/1.sh'

我的1.sh

#!/bin/bash -l 

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

x=1
while [ $x -le 3 ] 
do 
URL=$(head -n 1 /root/Dropbox/query.txt) 
lynx -dump  $URL | egrep '^http' > /root/Dropbox/urls.txt 
x=$(( $x + 1 )) 
done

Bash默认

#echo $ SHELL

/斌/庆典

为什么cron不运行1.sh?


删除crontab行中的“root”行:

* * * * * /usr/bin/flock -xn /var/lock/script.lock -c '/bin/bash /root/Dropbox/1.sh'

如果你需要将根权限放在root用户的crontab中。
使用“root”时,您还会在系统日志或消息日志中发现错误。

当然可以确定cron守护进程正在运行 :ps -ef | grep cron

ADD:我用简单的触摸文件(在Ubuntu上)测试过它:
contab线:

* * * * * /usr/bin/flock -xn /var/lock/script.lock -c '/bin/bash ~/1.sh'

1.sh:

#!/bin/bash
touch /tmp/hallo

ADD :(查看lynx命令)1.sh脚本的一个版本适用于我。

#!/bin/bash

x=1
while [ $x -le 3 ]
do
URL="http://www.subir.com/lynx.html"
lynx -dump  $URL | egrep '.*. http' > urls.txt
x=$(( $x + 1 ))
done

我改变了egrep的regEx。 您的l output输出可能不同(其他版本的l))。 我使用了一个固定的测试URL(lynx手册页)。 urls.txt将被填充。 脚本由cron触发。 在下一次运行中,循环逻辑中的注意事项将会改变。

stephan@coppi:~$ more urls.txt 
   1. http://lynx.isc.org/current/index.html
   2. http://lynx.isc.org/current/lynx2-8-8/lynx_help/lynx_help_main.html
   3. http://lynx.isc.org/current/lynx2-8-8/lynx_help/Lynx_users_guide.html
   4. http://lynx.isc.org/lynx2.8.7/index.html
   5. http://lynx.isc.org/lynx2.8.7/lynx2-8-7/lynx_help/lynx_help_main.html
   6. http://lynx.isc.org/lynx2.8.7/lynx2-8-7/lynx_help/Lynx_users_guide.html
   7. http://lynx.isc.org/mirrors.html
   8. http://lists.nongnu.org/mailman/listinfo/lynx-dev/
   9. http://lynx.isc.org/signatures.html
  10. http://validator.w3.org/check?uri=http%3A%2F%2Flynx.isc.org%2Findex.html
链接地址: http://www.djcxy.com/p/57193.html

上一篇: Cron doesn't run bash script

下一篇: Are shell scripts sensitive to encoding and line endings?