Резервное копирование каталога в Linux с помощью сценария оболочки

Существует несколько вариантов резервного копирования ваших данных в Linux . Вы можете использовать некоторые бесплатные программы, такие как fwbackups и Sbackup . Однако существует простой способ резервного копирования каталога без установки дополнительного программного обеспечения.

Мы создадим сценарий оболочки, используя переменные, команду tar и команду date , чтобы создать датированный файл резервной копии каталога с его подкаталогами.

Сценарий оболочки — это, по сути, файл, содержащий список команд, которые выполняются последовательно. Если у вас есть ряд команд, которые вы регулярно запускаете по порядку, полезно создать сценарий оболочки, содержащий эти команды. Затем вам нужно только запустить файл сценария для запуска команд.

Создание файла сценария оболочки

В этом примере мы собираемся создать сценарий оболочки для резервного копирования каталога, содержащего файлы для руководства пользователя. Мы используем среду Gnome в (Gnome)Ubuntu .

Сначала войдите в свой домашний каталог, выбрав « Домашняя папка(Home Folder) » в меню « Места ». (Places)Браузер файлов(File Browser) открывается в вашем домашнем каталоге.

Открытие домашней папки

Мы собираемся создать новый пустой файл, в который мы будем вводить команды для выполнения резервного копирования. Щелкните правой кнопкой мыши(Right-click) на правой панели и выберите « Create Document | Empty File из всплывающего меню.

Создание пустого файла сценария оболочки

Файл добавлен в список и готов к переименованию. Введите(Type) имя файла, присвоив ему расширение .sh .

Новый файл готов к переименованию

В этом примере мы назвали наш файл user_guide_backups.sh .

Файл сценария оболочки переименован

Теперь нам нужно добавить команды в файл. Щелкните правой кнопкой мыши имя файла и выберите « Открыть с помощью gedit(Open with gedit) » во всплывающем меню.

Открытие файла сценария оболочки с помощью gedit

Файл открывается в gedit . Введите следующие строки в файл и нажмите Сохранить(Save) . Назначение каждой строки указано ниже.

ПРИМЕЧАНИЕ.(NOTE:) Вы также можете скопировать следующий текст и вставить его в gedit . Обязательно измените <username> на свое имя пользователя.

#!/bin/bash
 SRCDIR="/home/<username>/Documents/my_work/"
 DESTDIR="/home/<username>/Backups/"
 FILENAME=ug-$(date +%-Y%-m%-d)-$(date +%-T).tgz
 tar – create – gzip – file=$DESTDIR$FILENAME $SRCDIR

Редактирование файла сценария оболочки в gedit

Построчное описание

В следующей таблице описано, что представляет собой каждая строка в файле сценария оболочки.

Line # Description
1 This line must be the first line in a bash shell script, which is the default type of script.
2 This line sets up a variable called SRCDIR and sets the value of it to the directory to be backed up.
NOTE: Be sure to replace <username> with your username.
3 This line sets up a variable called DESTDIR and sets the value of it to the directory into which the backup file will be written.
NOTE: Be sure to replace <username> with your username.
4 This line sets up a variable called FILENAME and sets the value using text and variables containing the date command to add the current date and time to the filename. For example, the filename might be ug-20100212-13:03:45.tgz.
NOTE: When using a variable, always start it with the dollar sign ($). If you use a command as part of a variable, enclose the command and the options for the command in parentheses.
5 This line is the tar command with the following function and options added.

–create This function creates a new archive (or truncates an old one if the filename specified already exists) and writes the named files or directory to it.
–gzip This option tells tar to compress the files in the archive using the gzip utility.
–file This option gives tar the filename to use. In this case, we assembled the filename using the DESTDIR, FILENAME, and SRCDIR variables.

Редактирование разрешений(Permissions) для файла сценария оболочки(Shell Script File)

Перед запуском скрипта необходимо убедиться, что файл имеет правильные разрешения. Для этого снова откройте домашнюю папку(Home Folder) , как указано выше, и щелкните правой кнопкой мыши файл сценария оболочки. Выберите « Свойства(Properties) » во всплывающем меню.

Получение свойств файла сценария оболочки

Отобразится диалоговое окно « Свойства ». (Properties)Убедитесь(Make) , что установлен флажок « Выполнить ».(Execute)

Права доступа к файлу сценария оболочки

Щелкните Закрыть(Close) .

Запуск сценария оболочки

Чтобы запустить сценарий оболочки, откройте окно терминала, выбрав « Accessories | Terminal из меню Приложения .(Applications)

Открытие окна терминала

Когда откроется окно терминала , вы должны быть в своей (Terminal)домашней папке(Home Folder) по умолчанию. Ввод pwd в командной строке и нажатие Enter подтверждает этот факт. В командной строке введите ./user_guide_backups.sh и нажмите Enter .

Запуск сценария оболочки

У вас должен быть файл .tgz в папке (.tgz)Backups в вашей домашней папке(Home Folder) . Если щелкнуть правой кнопкой мыши имя файла, вы увидите несколько вариантов открытия архива в одной из доступных программ архивации или извлечения файлов непосредственно в папку Backups с помощью команды (Backups)Extract Here .

Параметры всплывающего меню для файла .tgz

Дополнительная информация

Ссылки ниже предоставляют дополнительную информацию о сценариях оболочки, командах tar и date и других командах Linux .

Сценарии

Краткое руководство по написанию скриптов с использованием оболочки bash(A quick guide to writing scripts using the bash shell)

Bash Shell Scripting – 10 Seconds Guide | All about Linux

Справочное руководство по Bash(Bash Reference Manual)

Команды Linux

смолка MAN-страница(tar MAN Page)

дата MAN-страница(date MAN Page)

Команды bash — MAN-страницы Linux(bash commands – Linux MAN Pages)

Изучение этих страниц поможет вам создать свои собственные полезные сценарии оболочки bash.



About the author

Я профессиональный аудиотехник и клавишник с опытом работы более 10 лет. Я работал в корпоративном мире в качестве консультанта и менеджера по продуктам, а в последнее время — инженером-программистом. Мои навыки и опыт позволяют мне работать над различными типами проектов от малого бизнеса до крупных компаний. Я также являюсь экспертом по Windows 11 и работаю над новой операционной системой уже более двух лет.



Related posts