Покоряй и Властвуй: Автоматизация действий Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
fullcircle:24:автоматизация_действий [2010/05/02 15:50]
fullcircle:24:автоматизация_действий [2012/05/28 09:10] (текущий)
Строка 1: Строка 1:
 +======Покоряй и Властвуй:​ Автоматизация действий ======
 +<style right>
 +//​Автор:​ Лукас Вестерман (Lucas Westermann)//​
 +</​style>​
 +
 В этой статье мы рассмотрим автоматизацию ежедневных рутинных действий и создадим рабочее решение для резервного копирования. Во-первых,​ «сценарий bash» — это сценарий,​ состоящий из обычных команд bash и некоторых операторов,​ которые нечасто используются в командной строке (условия if-then-else,​ циклы while и т.д.), а cron — это демон (фоновая служба),​ который выполняет команды,​ перечисленные в пользовательском файле crontab (поэтому если вам нужно запустить задачу,​ требующую прав суперпользователя,​ то редактировать следует файл crontab, принадлежащий пользователю root). Мы будем использовать простой сценарий (всего в одну строчку),​ который объединяет в один текстовый файл все файлы .java из одного каталога. Вы можете изменить сценарий,​ например,​ для объединения файлов журналов. Я объясню,​ как он работает,​ а затем расскажу,​ как настроить cron, чтобы сценарий запускался каждые 6 часов. В этой статье мы рассмотрим автоматизацию ежедневных рутинных действий и создадим рабочее решение для резервного копирования. Во-первых,​ «сценарий bash» — это сценарий,​ состоящий из обычных команд bash и некоторых операторов,​ которые нечасто используются в командной строке (условия if-then-else,​ циклы while и т.д.), а cron — это демон (фоновая служба),​ который выполняет команды,​ перечисленные в пользовательском файле crontab (поэтому если вам нужно запустить задачу,​ требующую прав суперпользователя,​ то редактировать следует файл crontab, принадлежащий пользователю root). Мы будем использовать простой сценарий (всего в одну строчку),​ который объединяет в один текстовый файл все файлы .java из одного каталога. Вы можете изменить сценарий,​ например,​ для объединения файлов журналов. Я объясню,​ как он работает,​ а затем расскажу,​ как настроить cron, чтобы сценарий запускался каждые 6 часов.
 Я предпочитаю создавать сценарии в редакторе nano, но если вам удобнее пользоваться текстовым редактором с графическим интерфейсом,​ просто замените «nano» на «gedit» (без кавычек). Введите команду:​ Я предпочитаю создавать сценарии в редакторе nano, но если вам удобнее пользоваться текстовым редактором с графическим интерфейсом,​ просто замените «nano» на «gedit» (без кавычек). Введите команду:​
Строка 12: Строка 17:
 </​code>​ </​code>​
  
-Чтобы сохранить файл, нажмите Ctrl+X и Enter. Чтобы сделать его исполняемым,​ выполните следующую команду:​+Чтобы сохранить файл, нажмите ​<key>Ctrl+X</​key> ​и <key>Enter</​key>​. Чтобы сделать его исполняемым,​ выполните следующую команду:​
  
 <​code>​ <​code>​
Строка 74: Строка 79:
 Предполагается,​ что ваш жёсткий диск или резервный раздел смонтирован в /​media/​Backup и на нём есть каталог «Music Backup». Команда tar запаковывает ваш каталог Music в tar-архив backup.tar.gz,​ сжатый при помощи gzip, и помещает его в каталог /​media/​Backups/​Music Backup/. Можно запускать эту команду из crontab и без сценария,​ но если вы собираетесь делать резервирование всей системы (или, допустим,​ раздела root), то вы наверняка захотите указать длинный список каталогов,​ которые не нужно обрабатывать (возможно,​ этот список будет храниться в отдельном файле). Так что с использованием сценария это будет просто аккуратнее. Более того, сценарий можно запросто запустить из терминала. Я рекомендую всегда тестировать команды или сценарии на небольшом тестовом каталоге,​ прежде чем добавлять их в crontab, иначе можно столкнуться с проблемами. Предполагается,​ что ваш жёсткий диск или резервный раздел смонтирован в /​media/​Backup и на нём есть каталог «Music Backup». Команда tar запаковывает ваш каталог Music в tar-архив backup.tar.gz,​ сжатый при помощи gzip, и помещает его в каталог /​media/​Backups/​Music Backup/. Можно запускать эту команду из crontab и без сценария,​ но если вы собираетесь делать резервирование всей системы (или, допустим,​ раздела root), то вы наверняка захотите указать длинный список каталогов,​ которые не нужно обрабатывать (возможно,​ этот список будет храниться в отдельном файле). Так что с использованием сценария это будет просто аккуратнее. Более того, сценарий можно запросто запустить из терминала. Я рекомендую всегда тестировать команды или сценарии на небольшом тестовом каталоге,​ прежде чем добавлять их в crontab, иначе можно столкнуться с проблемами.
  
-Смотрите также:+<note tip>​Lucas научился всему, что знает, ломая систему,​ которую потом приходится учиться восстанавливать. Когда ​есть время, он также ​ведёт блог http://​lswest-ubuntu.blogspot.com </​note>​ 
 + 
 +-------------------------------- 
 + 
 +http://​lswest.pastebin.com/​f21a592a4 — Для тех, кто заинтересовался,​ версия сценария на языке Python 
 + 
 +http://​www.linux.org/​docs/​ldp/​howto/​Bash-Prog-Intro-HOWTO.html — Учебник по созданию сценариев bash  
 + 
 +http://​www.clickmojo.com/​code/​cron-tutorial.html — Руководство по cron 
 + 
 +---------------------------------------
  
-Для тех, кто заинтересовался, версия сценария на языке Python:  +<style center>​ 
-http://lswest.pastebin.com/​f21a592a4+//​[[..:​24|К содержанию номера]]//
  
-Учебник по созданию сценариев bash: http://​www.linux.org/​docs/ldp/howto/Bash-Prog-Intro-HOWTO.html+//​[[:​fullcircle|К ​архиву журналов]]// 
 +</style>
  
-«Linux Shell Scripting with Bash» Кена ​О. Берч (Ken O. Burtch) (ISBN: 978-0-672-32642-4)+{{tag>​Система Администрирование Full_Circle BASH Скрипты Резервирование}}
  
-Руководство по cron: http://​www.clickmojo.com/​code/​cron-tutorial.html