Я пытаюсь написать скрипт для получения версии программного обеспечения со многих серверов. Но при попытке я получаю это сообщение об ошибке.
bash: Версия Postfix: Версия MariaDB: Версия ОС: Версия Java:: команда не найдена
bash: postfixverzio: команда не найдена
Нулевое тело сообщения; надеюсь, что все в порядке
#!/usr/bin/env bash
parancsok=$(<verziok_lekerdezese.sh)
while read line
do
array=($line)
echo "IP Addresses : ${array[0]} "
ssh -t -t root@${array[0]} ${parancsok}
done < ipcimek_test.txt
Verziok_lekerdezese.sh:
postfixvr = $(postconf -d | grep -m 1 mail_version | cut -d= -f2)
mariadbvr = $(mysql -v)
osvr = $(cat /etc/redhat-release)
javavr = $(java -version)
hostname = $(cat /etc/hostname)
body = "Postfix verzio: $postfixvr MariaDB verzio: $mariadbvr OS verzio: $osvr Java verzio: $javavr"
echo $body | mail -s "Verziok - Szervernev: $hostname" sample@sample.com
exit
Прошу прощения за плохой английский.
Вам нужно удалить пробелы с обеих сторон равного символа =
(в операторах присваивания) в вашем сценарии bash. Итак, строки:
postfixvr = $(postconf -d | grep -m 1 mail_version | cut -d= -f2)
mariadbvr = $(mysql -v)
osvr = $(cat /etc/redhat-release)
javavr = $(java -version)
hostname = $(cat /etc/hostname)
следует записать как:
postfixvr=$(postconf -d | grep -m 1 mail_version | cut -d= -f2)
mariadbvr=$(mysql -v)
osvr=$(cat /etc/redhat-release)
javavr=$(java -version)
hostname=$(cat /etc/hostname)
Это относится ко всем заданиям, включая body =
также.