Я хочу иметь возможность записывать результат выполнения сценария bash в файл. Сам скрипт довольно прост, он используется для установки базовых пакетов на новые установочные машины, и его схема выглядит так.
sudo apt-get install -y nano
Я пытаюсь добиться с помощью bash-скрипта, чтобы сообщить, прошла ли установка гладко или в случае неудачи - указать что пошло не так. Я бы хотел, чтобы он создал файл типа "log", который очень кратко сообщал бы о статусе, например
Package "nano" successfully installed!
или
Package "nano" failed to install. // Here comes the line of apt-get install that caused fail
Заранее спасибо!
Во-первых, вы не должны использовать sudo в скрипте bash, он неактивен, и поэтому, если вам потребуется использовать пароль, вы не сможете поднимать его.
Ниже приведен основной пример установки нескольких пакетов, для установки нескольких пакетов вы добавите пакет в строку "for package in". Вывод будет добавлен к существующему файлу.
#!/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.
.