Прежде всего, спасибо, что заглянули в это!
Я очень новичок в bash-скриптинге, чего я пытаюсь достичь: в настоящее время мне приходится довольно часто перезапускать некоторые сервисы на своей работе, и я пытаюсьчтобы создать сценарий для его автоматизации, мне удалось создать все, но я также хочу создать условное выражение, в котором если systemctl status = неактивно, тогда echo «хорошо, хорошо, все хорошо», так что давайте продолжим, но если нет, то echo «повторнозапуск будет повторен через 10 секунд ";Я использую grep, чтобы найти текст «активный: активный (работает)» или «активный: неактивный (мертвый)» из статуса systemctl службы (представлен ниже bluetooth.service):
#!/bin/bash
#Restarting bluetooth.service
clear
active_stop="Active: stopped (dead)"
echo "This script will RESTART the following service: Bluetooth.Service"
echo -e "State the REASON for the RESTART: " >> /home/sjadmin/SYS_RESTART/ARCHIVE/sysrestart.log
read -p "Press ENTER to continue or CTRL + C to cancel"
sudo systemctl stop bluetooth.service |grep active IF [[grep -q=$active_stop]]
then read -p "Service STOPPED, please confirm status bellow, press ENTER to continue..."
else read -p "Action failed";
fi
sudo systemctl status bluetooth.service |grep status1="$(Active: active (running))" >> /home/sjadmin/SYS_RESTART/ARCHIVE/sysrestart.log
sudo systemctl status bluetooth.service |grep active
echo "Service will be RESTARTED in 5 MINUTES, PLEASE DO NOT DISCONECT FROM THE SYSTEM..."
sleep 10s
sudo systemctl start bluetooth.service
read -p "Service RE-STARTED, please confirm status bellow, press ENTER to continue..."
sudo systemctl status bluetooth.service |grep active >> /home/sjadmin/SYS_RESTART/ARCHIVE/sysrestart.log
sudo systemctl status bluetooth.service |grep active
echo "System RESTARTED CORRECTLY, please find the log at the SYS_RESTART/ARCHIVE folder"
Спасибо взаранее за всю помощь и поддержку!:)