Прежде всего должен с позором признать, что я, к сожалению, ничего не знаю о скриптах ... Я просто пытаюсь использовать тот, который мне кажется подходящим.
Я использую узел VPS с OpenVZ, и мне нужен сценарий, который автоматически перезапустит VPS, злоупотребляя нагрузкой на сервер, с помощью специальной команды «vzctl restart SERVERID».
Но, к сожалению, ничего не получается, и скрипт при запуске выдает ошибки.
Исходный сценарий выглядит следующим образом:
#! /bin/bash
export PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
maxload="20"; # put here the max loadavg permitted
cat /dev/null > loads.txt;
vzlist -o ctid,laverage > loads.txt;
cat loads.txt | while read line; do
vm=$(echo ${line:0:5});
load=$(echo ${line} | cut -d'/' -f3);
load2=$(echo ${load} | cut -d'.' -f1);
if [ $load2 -gt $maxload ]
then
echo "restarting $vm - $load";
vzctl restart $vm;
echo "$vm - $load" | mail -s "$vm restarted for overload" hostingstudio.net@gmail.com
fi
done
Если я его запускаю, я получаю такую ошибку:
antiload.sh: строка 10: [: слишком много аргументов
Я немного поработал в Интернете, а затем попытался изолировать переменную в строке 10 с помощью кавычек, изменив таким образом код следующим образом:
if [ "$load2" -gt $maxload ]
но я все равно получаю следующее сообщение об ошибке:
antiload.sh: строка 10: [[: CTID LAVERAGE: синтаксическая ошибка в выражении (токен ошибки - "LAVERAGE")
Пожалуйста, кто-нибудь может помочь мне отладить этот скрипт, чтобы я смог его использовать?
Спасибо за внимание, время и помощь.