crontab发送net rpc shutdown但没有任何反应

时间:2013-04-03 10:07:15

标签: cron crontab freebsd shutdown

我创建了两个脚本来自动打开和关闭课堂中的计算机。

这两个脚本都会获得一个MAC ID列表并使用它们来1)唤醒计算机(唤醒命令)和2)关闭计算机(net rpc shutdown)。

服务器是FREEBSD,工作站是win7。

除了“wake”和“net rpc shutdown”部分之外,两个脚本看起来都很相似。当手动运行时(通过shell),两个脚本都可以正常工作。

只有WOL脚本与crontab一起运行,关机脚本运行良好,但计算机没有任何反应。

Cron日志只显示脚本已处理,但计算机不会做出反应。

关机脚本:

#!/usr/local/bin/bash
#[ $# -eq 0 ] && { echo "Usage: $0 filename"; exit 1; } #muutujad sätitud?
list="/usr/local/etc/isc-dhcp_192.168.4"
erand="/root/skriptid/WOL/erand.txt"
# kontrollime, kas erandid ja list olemas
[ ! -f $list ] && { echo "EXIT! List puudu asukohas: $list"; exit 1; }
[ ! -f $erand ] && { echo "EXIT! Erandid puudu asukohas: $erand"; exit 1; }
#jätkame
while read line
do
        IFS=' ' read -a array <<< "$line"
        mac=`echo ${array[5]}|sed 's/;//'`
        ip=`echo ${array[7]}|sed 's/;//'`
        host=`echo ${array[1]}`
        if grep -Fq "$ip" $erand
        then
                echo -e "Jatan vahele: HOST: $host IP: $ip MAC: $mac \n----" #exceptions
                sleep 1
        else
                echo -e "Lülitan välja: HOST: $host IP: $ip MAC: $mac \n----"
                net rpc SHUTDOWN -t 15 -f -C "Arvuti lulitub valja. Serveripoolne kask."     -W luunja -U $host\\xx%xx -S $ip
                sleep 1
        fi
done < $list

Cron工作:

40      19      *       *       *     root    /root/skriptid/WOL/shutdown.sh

这两个脚本都是由root运行的,拥有666个权限。

除了日志之外,有没有办法看到cronjob的输出? cronjob和net rpc之间是否存在已知冲突?

任何帮助都会被贬低! 感谢

3 个答案:

答案 0 :(得分:1)

您需要指明执行脚本的二进制文件。

40 19 * * * root /root/skriptid/WOL/shutdown.sh

40 19 * * * root /bin/sh /root/skriptid/WOL/shutdown.sh

或来自which sh的任何内容。

(我想我每天回答一次这个问题)

答案 1 :(得分:0)

添加到crontab的路径

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

答案 2 :(得分:0)

您必须在Windows计算机上启用文件共享才能使脚本正常工作。