Сценарії shell, російськомовна документація по ubuntu

Один з найпростіших варіантів резервного копіювання системи - використання shell сценарію. Наприклад, сценарій може бути використаний для настройки які каталоги вимагають резервного копіювання та для передачі цих каталогів в якості аргументів утиліті tar. яка створює архівні файли. Архівний файл може бути потім переміщений або скопійований в інше місце. Архів також може бути створений на віддаленої файлової системи, такої як NFS.

Утиліта tar створює один архівний файл з безлічі файлів і каталогів. tar може також пропускати файли через утиліти стиснення, зменшуючи таким чином розмір архівного файлу.

Наступний shell сценарій використовує tar для створення архівного файлу на віддалено змонтованої файлової системи. Ім'я архіву визначається за допомогою додаткових утиліт командного рядка.

$ Backup_files. змінна для перерахування які каталоги ви бажаєте зберігати. Список може бути змінений під ваші вимоги.

$ Day. змінна, що містить день тижня. Вона використовується для створення архівних файлів на кожен день тижня, забезпечуючи історію резервного копіювання на сім днів. Існують інші способи отримання такого результату, включаючи використання утиліти date.

$ Hostname. змінна, що містить короткий мережеве ім'я системи. Використання мережевого імені в назві архіву дозволяє вам поміщати щоденні архіви від різних систем в один каталог.

$ Archive_file. повне ім'я архіву.

$ Dest. місце розташування архівного файлу. Каталог повинен бути створений і в даному випадку змонтований до виконання сценарію резервного копіювання. Дивіться розділ Мережева файлова система (NFS) для уточнення деталей використання NFS.

status messages. необов'язкові повідомлення, що виводяться в консоль з використанням утиліти echo.

tar czf $ dest / $ archive_file $ backup_files. команда tar. використовувана для створення архівного файлу.

dow. день тижня для виконання команди, від 0 до 7. неділю може бути позначено як 0 так і 7, обидва значення припустимі.

command. виконувана команда.

Для виконання сценарію backup.sh, наведеного вище за допомогою cron, введіть наступне в терміналі:

Використання sudo для виконання команди crontab -e змінює файл crontab користувача root. Це потрібно для резервного копіювання каталогів, доступ до яких дозволений тільки root.

Додайте наступний запис в файл crontab:

Сценарій backup.sh буде тепер виконуватися кожен день опівночі.

Сценарій backup.sh потрібно скопіювати в каталог / usr / local / bin / щоб даний запис виконувалася правильно. Сценарій можна розмістити де завгодно на файлової системі, просто відповідно змініть шлях до сценарію в crontab.

Для більш глибокого вивчення опцій crontab дивіться секцію Посилання.

Як тільки архів створений, важливо перевірити архів. Архів може бути перевірений висновком списку файлів, які в ньому знаходяться, але найкращою перевіркою буде відновлення файлів з архіву.

1. Щоб подивитися вміст архіву, наберіть в терміналі:

2. Щоб відновити файли з архіву в інший каталог введіть:

Параметр -C команди tar перенаправляє видобувні файли в зазначений каталог. Наведений приклад витягне файл / etc / hosts в / tmp / etc / hosts. tar створює заново структуру каталогів для видобутих файлів.

Також зверніть увагу на відсутність лідера "/" в шляху витягується файлу.

3. Для відновлення всіх файлів архіву введіть наступне:

Це перепише всі файли, що знаходяться в файлової системі.

Для додаткової інформації по shell сценаріями дивіться керівництво Advanced Bash-Scripting Guide.

Книга Teach Yourself Shell Programming in 24 Hours доступна в мережі і є чудовим ресурсом для створення shell сценаріїв.

Сторінка CronHowto Wiki містить подробиці по додаткових опцій cron.

Дивіться керівництво GNU tar Manual для додаткових параметрів tar.

Shell сценарій використовує tar для створення архіву, але існує багато інших утиліт, які можна використовувати. наприклад:

cpio. використовується для копіювання файлів в і з архіву.

dd. частина пакета coreutils. Утиліта нижнього рівня, яка може копіювати дані з одного формату в інший.

rsnapshot. утиліта отримання знімка файлової системи, яка використовується для отримання копій всієї файлової системи.


Сервери на Ubuntu

Схожі статті