我创建了两个脚本来自动打开和关闭教室中的计算机。
两个脚本都获取 MAC ID 列表并使用它们来 1)唤醒计算机(唤醒命令)和 2)关闭计算机(网络 rpc 关闭)。
服务器是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
定时任务:
40 19 * * * root /root/skriptid/WOL/shutdown.sh
这两个脚本都由 root 运行并拥有 666 权限。
除了日志,有没有办法查看 cronjob 的输出?cronjob 和 net rpc 之间是否存在已知冲突?
任何帮助将不胜感激!谢谢