问题:
我有一个服务器,需要每天向远程计算机发送一些文件。
为了使这个任务自动化,我已经完成了这个脚本。
为了查看任务是否成功完成,需要在这个脚本中插入什么?
#!/bin/sh
for server in `more server-list.txt`
do
sshpass -p password scp -r /root/list/*.* root@$server:/etc/list/
done
sleep 5
for server in `more server-list.txt`
do
sshpass -p password ssh root@$server /sbin/reboot
done
#server-list.txt
10.29.0.32 10.29.0.4 10.29.0.11 10.29.0.12 10.29.0.13 10.29.0.14
执行以下命令运行脚本后,我只有以下输出
root@VPS:~#./sendingfiles.sh
root@VPS:~#
答案1:
变量'$'存储上一个命令的结果,
- 0=成功
- 1-127 =文档化错误
- ( -128 ) -( -1 ) =操作系统用某些信号终止程序
sshpass -p password ssh root@$server /sbin/reboot
if [ $? -eq 0 ]; then
echo "$server - Successfully rebooted"
else
echo "$server - Failed to reboot"
fi
答案2:
cat server-list.txt
- 如果您正在编写脚本,则使用无密钥方式比sshpass -p更容易
- 使用
$()
而不是for server in $(cat server-list.txt)
相关文章