Я хочу иметь возможность регистрировать результат выполнения сценария bash в файл. Сам скрипт довольно прост, он используется для установки базовых пакетов на новые установочные машины, и его схема выглядит так
sudo apt-get install -y nano
Вещь, которую я пытаюсь достичь, - это сценарий bash, чтобы сообщить, прошла ли установка гладко или в случае неудачи - указать, что пошло не так. Поэтому я хотел бы создать файл типа «журнал», который очень кратко сообщал бы о состоянии, например
Package "nano" successfully installed!
или
Package "nano" failed to install. // Here comes the line of apt-get install that caused fail
Заранее спасибо!
Во-первых, вы не должны использовать sudo в сценарии bash, он не интерактивен, поэтому, если вам потребуется использовать пароль, вы не сможете повысить его.
Ниже приведен базовый пример установки нескольких пакетов. Чтобы установить больше, вы должны добавить пакет в строку «для пакета в». Вывод настроен на добавление к существующему файлу.
#!/bin/bash
apt-get update
for package in nano httpd vim mysql-server
do
apt-get install -qq --print-uris $package >> script.log 2>>script_error.log
done
Вы должны сохранить этот файл, как хотите, затем вам нужно установить разрешения, чтобы разрешить выполнение скрипта. Если вы вызвали файл script.sh, вы бы запустили:
chmod +x script.sh
Затем, чтобы запустить сценарий, вы должны:
sudo ./script.sh
Это очень простой пример, он не регистрирует настолько хорошо, насколько это возможно, и есть много более сложных и лучших способов сделать это, но он выполнит свою работу, если вы будете счастливы просмотреть журнал после установки. Первый журнал содержит минимальное количество журналов при обычной установке (даже если вы не просматриваете его, вы можете оставить его для проверки), а второй файл журнала содержит только ошибки из apt-get.