Назад | Перейти на главную страницу

Сценарий Bash для установки пакетов и отчета в файле журнала

Я хочу иметь возможность регистрировать результат выполнения сценария 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.