Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
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 |