Bash 脚本通过 sshpass 备份交换机的配置,然后使用 mutt 发送结果(电子邮件)

Bash 脚本通过 sshpass 备份交换机的配置,然后使用 mutt 发送结果(电子邮件)

在过去的两天里,我一直试图获取交换机上运行的节目的结果并通过电子邮件将其发送给我。我已经为它制作了一个 bash 脚本,但我仍然不知道我在这里做错了什么,修复所有问题后,似乎我的 bash 脚本有问题。我为 sshpass 信息创建了一个文件,如下所示:1.1.1.1:myusername:mypass 现在这是我的 bash 脚本:

#!/bin/bash
EMAIL="$1"
while read line
do
        export SSHPASS=$(echo $line | awk -F':' '{print $3}')
        user=$(echo $line | awk -F':' '{print $2}')
        ip=$(echo $line | awk -F':' '{print $1}')
        [ ! -d $ip ] && mkdir $ip
        echo "Backing up ($ip)"
        confpath="./${ip}/${ip}_$(date +"%Y-%m-%d_%H-%M-%S").txt"
        res=$(sshpass -e scp -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc   $user@$ip:running-config $confpath 2>&1)
        exit_code=$?
        echo $res
        if [ $? -eq $exit_code ] ; then
                echo "Done"
                echo "backup for switch $ip" | mutt -a "$confpath" -s "backup for switch $ip" -- $EMAIL
        else
                echo "In $(date +'%Y-%m-%d_%H-%M-%S') tried to get a backup from $ip and it failed.\n\n###\n$res\n###" | mutt -s "backup for switch $ip" -- $EMAIL
                echo "Failed"
        fi
done <&0

另外,我的 vps 上安装的 mutt 在单独使用时运行良好,但当我尝试命令格式时,我尝试的命令是: 它会返回,我不知道为什么它会失败,除非我的脚本出了问题,我无法弄清楚。如果有人需要有关脚本的任何说明,请发邮件,我会解释更多。提前谢谢大家 :)cat file | ./backup "[email protected]"Failed

相关内容