В этой статье мы рассмотрим, как устанавливать, обновлять и удалять пакеты в Red Hat Enterprise Linux 7. Мы также рассмотрим, как автоматизировать задачи с помощью cron, и завершим этот руководство, объясняя, как находить и интерпретировать файлы журналов системы с акцентом на то, чтобы научить вас, почему все эти навыки являются важными для каждого системного администратора.

Управление пакетами через Yum
Чтобы установить пакет вместе со всеми его зависимостями, которые еще не установлены, вы будете использовать:
# yum -y install package_name(s)
Где имя_пакета(ов) представляет собой по крайней мере одно реальное имя пакета.
Например, чтобы установить httpd и mlocate (в указанном порядке), введите:
# yum -y install httpd mlocate
Примечание: буква y в приведенном выше примере обходит запросы на подтверждение, которые представляет yum перед фактическим скачиванием и установкой запрошенных программ. Вы можете его опустить, если хотите.
По умолчанию yum установит пакет с архитектурой, соответствующей архитектуре ОС, если это не переопределено путем добавления архитектуры пакета к его имени.
Например, на 64-битной системе yum install package установит версию x86_64 пакета, в то время как yum install package.x86 (если доступно) установит 32-битную версию.
Бывают моменты, когда вы хотите установить пакет, но не знаете его точного имени. Параметры поиск всех или поиск могут искать в настоящее время включенные репозитории по определенному ключевому слову в имени пакета и/или в его описании соответственно.
Например,
# yum search log
будет искать установленные репозитории для пакетов с словом “log” в их названиях и резюме, в то время как
# yum search all log
будет искать то же ключевое слово в описании пакета и полях url.
Как только поиск вернет список пакетов, вы можете захотеть отобразить дополнительную информацию о некоторых из них перед установкой. Именно тогда пригодится опция инфо:
# yum info logwatch

Вы можете регулярно проверять наличие обновлений с помощью следующей команды:
# yum check-update
Вышеуказанная команда вернет все установленные пакеты, для которых доступно обновление. В приведенном ниже примере только rhel-7-server-rpms имеет доступное обновление:

Затем вы можете обновить только этот пакет с помощью,
# yum update rhel-7-server-rpms
Если есть несколько пакетов, которые можно обновить, yum update обновит их все одновременно.
А что делать, если вы знаете имя исполняемого файла, например, ps2pdf, но не знаете, какой пакет его предоставляет? Вы можете узнать это с помощью yum whatprovides “*/[executable]”
:
# yum whatprovides “*/ps2pdf”

Теперь, когда речь идет о удалении пакета, вы можете сделать это с помощью yum remove package. Просто, верно? Это показывает, что yum – полноценный и мощный менеджер пакетов.
# yum remove httpd
Читайте также: 20 команд Yum для управления пакетами RHEL 7
Старая и простая RPM
RPM (также известная как Разработчик пакетов RPM, или вначале Пакетный менеджер Red Hat) может также использоваться для установки или обновления пакетов, когда они приходят в форме отдельных .rpm
пакетов.
Она часто используется с флагами -Uvh
, чтобы указать, что она должна установить пакет, если он еще не установлен, или попытаться обновить его, если он уже установлен (-U)
, производя полное описание (-v)
и прогресс-бар с хэш-значками (-h)
во время выполнения операции. Например,
# rpm -Uvh package.rpm
another common use of rpm is to produce a list of currently installed packages with code>rpm -qa (short for query all):
# rpm -qa

Читайте также: 20 команд RPM для установки пакетов в RHEL 7
Планирование задач с использованием Cron
Linux и другие Unix-подобные операционные системы включают инструмент под названием cron, который позволяет вам планировать задачи (то есть команды или сценарии оболочки) для выполнения с периодичностью. Cron проверяет каждую минуту каталог /var/spool/cron на наличие файлов, названных последовательно для учетных записей в /etc/passwd.
При выполнении команд любая выходная информация отправляется владельцу crontab (или пользователю, указанному в переменной среды MAILTO файла /etc/crontab, если она существует).
Файлы crontab (которые создаются путем ввода crontab -e и нажатия Enter) имеют следующий формат:

Таким образом, если мы хотим обновить локальную базу данных файлов (которая используется утилитой locate для поиска файлов по их имени или моде) каждый второй день месяца в 2:15 am, нам нужно добавить следующий входcrontab:
15 02 2 * * /bin/updatedb
的上面的crontab条目读作:“在每个月的第二天运行 /bin/updatedb,无论星期几,都是凌晨 2:15”。正如我确定你已经猜到的那样,星号符号用作通配符字符。
在添加cron作业后,你可以看到在/var/spool/cron内部增加了一个名为root的文件,如我们之前提到的。该文件列出了crond守护进程应该运行的所有任务:
# ls -l /var/spool/cron

在上面的图像中,当前用户的crontab既可以使用的cat /var/spool/cron/root显示,也可以,
# crontab -l
如果你需要以更细粒度的基础运行任务(例如每天两次或每月三次),cron也可以帮助你做到这一点。
例如,要运行/my/script在每个月的1号和15号,并将任何输出发送到/dev/null,你可以像下crontab条目这样添加两个条目:
01 00 1 * * /myscript > /dev/null 2>&1 01 00 15 * * /my/script > /dev/null 2>&1
Но чтобы задача была легче для обслуживания, можно объединить оба вхождения в одно:
01 00 1,15 * * /my/script > /dev/null 2>&1
По примеру, указанному выше, мы можем выполнять /my/other/script в 1:30 утра на первый день каждого третьего месяца:
30 01 1 1,4,7,10 * /my/other/script > /dev/null 2>&1
Тогда, когда вам нужно повторять определенную задачу каждые “x” минуты, часы, дни или месяцы, можно разделить правый интервал на желаемую частоту. Следующая crontab запись имеет то же самое значение, что и предыдущая:
30 01 1 */3 * /my/other/script > /dev/null 2>&1
А может быть вам нужно выполнять определенную задачу с фиксированной частотой или после запуска системы, например. Вместо пяти полей вы можете использовать одну из следующих строк, чтобы указать точное время, когда вы хотите, чтобы ваша задача была выполнена:
@reboot Run when the system boots. @yearly Run once a year, same as 00 00 1 1 *. @monthly Run once a month, same as 00 00 1 * *. @weekly Run once a week, same as 00 00 * * 0. @daily Run once a day, same as 00 00 * * *. @hourly Run once an hour, same as 00 * * * *.
Читайте также: 11 команд для планирования задач cron в RHEL 7
Определение и проверка логов
Системные логи находятся (и обрабатываются) в каталоге /var/log. Согласно стандарту LinuxFilesystem Hierarchy, этот каталог содержит различные логи, которые записываются или их подкаталоги (такие как audit, httpd или samba, как показано на схеме ниже), соответствующими демонами во время работы системы:
# ls /var/log

Другие интересные логи: dmesg (содержит все сообщения из ядра), secure (логирование попыток подключения, требующих аутентификации пользователя), messages (системные сообщения) и wtmp (записи всех входов и выходов пользователей).
Логи очень важны, поскольку позволяют вам каждый раз посмотреть, что происходит в вашем системе в данный момент, и что произошло в прошлом. Они представляют собой незаменимый инструмент для устранения неполадок и мониторинга сервера Linux, и поэтому часто используются вместе с коммандой tail -f
, чтобы показать события в реальном времени, как они происходят и записываются в лог.
Например, если вы хотите показать события, связанные с ядром, введите следующую команду:
# tail -f /var/log/dmesg
Также, если вы хотите просмотреть доступ к вашему веб-серверу:
# tail -f /var/log/httpd/access.log
Резюме
Если вы умеете эффективно управлять пакетами, планировать задачи и знать, где искать информацию о текущем и прошлом состоянии вашего системы, вы можете быть уверенным, что вам не часто придется сталкиваться с неожиданностями. Я надеюсь, что этот материал поможет вам научиться или ознакомиться с этими базовыми навыками.
Не стесняйтесь сообщить нам о своих вопросах и комментариях, используя форму обратной связи ниже.
Source:
https://www.tecmint.com/yum-package-management-cron-job-scheduling-monitoring-linux-logs/