带输出的bash脚本

分享于 

2分钟阅读

互联网

  繁體

问题:

我有一个服务器,需要每天向远程计算机发送一些文件。

为了使这个任务自动化,我已经完成了这个脚本。

为了查看任务是否成功完成,需要在这个脚本中插入什么?


#!/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)

OUT  BASH  输出  bash-script  
相关文章