Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:руководство_по_ubuntu_server:резервное_копирование:shell_scripts [2012/09/20 20:51] [Выполнение сценария] |
wiki:руководство_по_ubuntu_server:резервное_копирование:shell_scripts [2012/09/20 21:43] (текущий) [Ссылки] |
||
---|---|---|---|
Строка 86: | Строка 86: | ||
-- **dom**: день месяца для выполнения команды. | -- **dom**: день месяца для выполнения команды. | ||
-- **mon**: месяц даты выполнения команды. | -- **mon**: месяц даты выполнения команды. | ||
- | -- **dow**: день недели для выполнения команды, от 0 до 7. Воскресенье может быть обозначено как 0 так и 7, оба значения допустимые. | + | -- **dow**: день недели для выполнения команды, от 0 до 7. Воскресенье может быть обозначено как 0 так и 7, оба значения допустимы. |
-- **command**: выполняемая команда. | -- **command**: выполняемая команда. | ||
+ | Для добавления или изменения записей в файле crontab используется команда **//crontab -e//**. Кроме того, содержимое файла crontab можно просмотреть с помощью команды **//crontab -l//**. | ||
- | To add or change entries in a crontab file the crontab -e command should be used. Also, the contents of a crontab file can be viewed using the crontab -l command. | + | Для выполнения сценария backup.sh, приведенного выше с помощью cron, введите следующее в терминале: |
- | + | <code>sudo crontab -e</code> | |
- | To execute the backup.sh script listed above using cron. Enter the following from a terminal prompt: | + | <note>Использование **sudo** для выполнения команды **crontab -e** изменяет файл crontab пользователя root. Это требуется для резервного копирования каталогов, доступ к которым разрешен только root.</note> |
- | + | ||
- | sudo crontab -e | + | |
- | + | ||
- | Using sudo with the crontab -e command edits the root user's crontab. This is necessary if you are backing up directories only the root user has access to. | + | |
- | + | ||
- | Add the following entry to the crontab file: | + | |
+ | Добавьте следующую запись в файл crontab: | ||
+ | <code> | ||
# m h dom mon dow command | # m h dom mon dow command | ||
0 0 * * * bash /usr/local/bin/backup.sh | 0 0 * * * bash /usr/local/bin/backup.sh | ||
+ | </code> | ||
+ | Сценарий backup.sh будет теперь выполняться каждый день в полночь. | ||
- | The backup.sh script will now be executed every day at 12:00 am. | + | <note>Сценарий backup.sh требуется скопировать в каталог /usr/local/bin/ чтобы данная запись выполнялась правильно. Сценарий можно разместить где угодно на файловой системе, просто соответственно измените путь к сценарию в crontab.</note> |
- | The backup.sh script will need to be copied to the /usr/local/bin/ directory in order for this entry to execute properly. The script can reside anywhere on the file system, simply change the script path appropriately. | + | Для более глубокого изучения опций crontab смотрите секцию [[#ссылки|Ссылки]]. |
- | + | ||
- | For more in-depth crontab options see References. | + | |
====Восстановление из архива==== | ====Восстановление из архива==== | ||
- | Once an archive has been created it is important to test the archive. The archive can be tested by listing the files it contains, but the best test is to restore a file from the archive. | + | Как только архив создан, важно проверить архив. Архив может быть проверен выводом списка файлов, которые в нем находятся, но лучшей проверкой будет восстановление файлов из архива. |
- | To see a listing of the archive contents. From a terminal prompt type: | + | 1. Чтобы посмотреть содержимое архива, наберите в терминале: |
+ | <code>tar -tzvf /mnt/backup/host-Monday.tgz</code> | ||
- | tar -tzvf /mnt/backup/host-Monday.tgz | + | 2. Чтобы восстановить файлы из архива в другой каталог введите: |
+ | <code>tar -xzvf /mnt/backup/host-Monday.tgz -C /tmp etc/hosts</code> | ||
+ | Параметр **//-C//** команды **//tar//** перенаправляет извлекаемые файлы в указанный каталог. Приведенный пример извлечет файл /etc/hosts в /tmp/etc/hosts. **tar** создает заново структуру каталогов для извлекаемых файлов. | ||
- | To restore a file from the archive to a different directory enter: | + | Также обратите внимание на отсутствие лидирующего %%"/"%% в пути извлекаемого файла. |
- | tar -xzvf /mnt/backup/host-Monday.tgz -C /tmp etc/hosts | + | 3. Для восстановления всех файлов архива введите следующее: |
- | + | <code> | |
- | The -C option to tar redirects the extracted files to the specified directory. The above example will extract the /etc/hosts file to /tmp/etc/hosts. tar recreates the directory structure that it contains. | + | cd / |
- | + | sudo tar -xzvf /mnt/backup/host-Monday.tgz | |
- | Also, notice the leading "/" is left off the path of the file to restore. | + | </code> |
- | + | <note>Это перепишет все файлы, находящиеся в файловой системе.</note> | |
- | To restore all files in the archive enter the following: | + | |
- | + | ||
- | cd / | + | |
- | sudo tar -xzvf /mnt/backup/host-Monday.tgz | + | |
- | + | ||
- | This will overwrite the files currently on the file system. | + | |
====Ссылки==== | ====Ссылки==== | ||
- | For more information on shell scripting see the Advanced Bash-Scripting Guide | + | ~~ Для дополнительной информации по shell сценариям смотрите руководство [[http://tldp.org/LDP/abs/html/|Advanced Bash-Scripting Guide]]. |
- | + | ~~ Книга [[http://safari.samspublishing.com/0672323583|Teach Yourself Shell Programming in 24 Hours]] доступна в сети и является замечательным ресурсом для создания shell сценариев. | |
- | The book Teach Yourself Shell Programming in 24 Hours is available online and a great resource for shell scripting. | + | ~~ Страница [[https://help.ubuntu.com/community/CronHowto|CronHowto Wiki]] содержит подробности по дополнительным опциям **cron**. |
- | + | ~~ Смотрите руководство [[http://www.gnu.org/software/tar/manual/index.html|GNU tar Manual]] для дополнительных параметров **tar**. | |
- | The CronHowto Wiki Page contains details on advanced cron options. | + | ~~ Статья [[http://en.wikipedia.org/wiki/Backup_rotation_scheme|Wikipedia Backup Rotation Scheme]] содержит информацию по другим схемам ротации архивов. |
- | + | ~~ Shell сценарий использует **tar** для создания архива, но существует много других утилит, которые можно использовать. Например: | |
- | See the GNU tar Manual for more tar options. | + | ~~ [[http://www.gnu.org/software/cpio/|cpio]]: используется для копирования файлов в и из архива. |
- | + | ~~ [[http://www.gnu.org/software/coreutils/|dd]]: часть пакета **coreutils**. Утилита нижнего уровня, которая может копировать данные из одного формата в другой. | |
- | The Wikipedia Backup Rotation Scheme article contains information on other backup rotation schemes. | + | ~~ [[http://www.rsnapshot.org/|rsnapshot]]: утилита получения снимка файловой системы, используемая для получения копий всей файловой системы. |
- | + | ~~ [[http://www.samba.org/ftp/rsync/rsync.html|rsync]]: гибкая утилита, используемая для копирования измененных частей файлов (инкрементное копирование). | |
- | The shell script uses tar to create the archive, but there many other command line utilities that can be used. For example: | + | |
- | + | ||
- | cpio: used to copy files to and from archives. | + | |
- | + | ||
- | dd: part of the coreutils package. A low level utility that can copy data from one format to another. | + | |
- | + | ||
- | rsnapshot: a file system snapshot utility used to create copies of an entire file system. | + | |
- | + | ||
- | rsync: a flexible utility used to create incremental copies of files. | + | |
---- | ---- |