Задание 2: Ежедневная резервная копия
1. Напишите простой скрипт backup.sh, который будет копировать содержимое папки ~/Documents в папку ~/Backup.
Пример скрипта backup.sh:
#!/bin/bash mkdir -p ~/Backup cp -r ~/Documents/* ~/Backup/
Объяснение скрипта:
#!/bin/bash- это так называемая "шебанг" (shebang), которая указывает операционной системе, какой интерпретатор использовать для выполнения скрипта. В данном случае это bash.mkdir -p ~/Backup- эта команда создает папку "Backup" в домашнем каталоге пользователя (обозначается символом "~"). Опция-pозначает, что если родительские каталоги не существуют, они будут созданы. Если папка "Backup" уже существует, команда не выдаст ошибку.cp -r ~/Documents/* ~/Backup/- эта команда копирует файлы и папки.cp- это команда для копирования.-r- эта опция означает "рекурсивно", то есть копировать не только файлы, но и все подкаталоги с их содержимым.~/Documents/*- это источник копирования. Символ*означает "все файлы и папки" внутри каталога "Documents" в домашнем каталоге.~/Backup/- это место назначения, куда будут скопированы файлы и папки.
2. Сделайте скрипт исполняемым:
Чтобы сделать скрипт исполняемым, нужно открыть терминал и выполнить следующую команду:
chmod +x backup.sh
Объяснение команды:
chmod- это команда для изменения прав доступа к файлам и каталогам.+x- эта опция добавляет право на исполнение (execute) для всех пользователей.backup.sh- это имя нашего скрипта.
3. Добавьте его в crontab для ежедневного выполнения в полночь:
Для добавления скрипта в crontab (планировщик задач в Unix-подобных системах) нужно выполнить следующие шаги:
Откройте crontab для редактирования, набрав в терминале:
crontab -e
В открывшемся файле (обычно это текстовый редактор nano или vim) добавьте следующую строку в конец файла:
0 0 * * * /home/ваш_пользователь/backup.sh
Замените
/home/ваш_пользователь/backup.sh на полный путь к вашему скрипту. Например, если ваш скрипт находится в домашнем каталоге, и ваше имя пользователя "user", то путь будет /home/user/backup.sh.
Объяснение строки crontab:
0- минуты (в данном случае 0 минут).0- часы (в данном случае 0 часов, что соответствует полуночи).*- день месяца (любой день).*- месяц (любой месяц).*- день недели (любой день недели)./home/ваш_пользователь/backup.sh- полный путь к скрипту, который нужно выполнить.
Сохраните изменения и закройте файл. В nano это делается нажатием
Ctrl+O (для сохранения) и Ctrl+X (для выхода).
4. Убедитесь, что папка ~/Backup обновляется каждый указанный интервал с новыми данными из ~/Documents.
Чтобы убедиться, что резервная копия создается и обновляется, можно сделать следующее:
- Проверить содержимое папки ~/Backup: После того как crontab выполнит скрипт (то есть после полуночи), вы можете открыть файловый менеджер или использовать команду
ls -l ~/Backupв терминале, чтобы увидеть, появились ли там файлы из ~/Documents. - Изменить файл в ~/Documents: Создайте новый файл или измените существующий в папке ~/Documents. Дождитесь следующего выполнения скрипта (следующей полуночи). После этого проверьте папку ~/Backup – измененный или новый файл должен там появиться.
- Проверить логи crontab (если есть): В некоторых системах crontab может отправлять вывод команд на почту пользователя или записывать в системные логи. Это более продвинутый способ проверки.
- Запустить скрипт вручную для проверки: Вы можете запустить скрипт вручную в любое время, чтобы убедиться, что он работает правильно. Для этого в терминале перейдите в каталог, где находится скрипт, и выполните:
./backup.shИли, если вы находитесь в другом каталоге:/home/ваш_пользователь/backup.shПосле этого проверьте содержимое папки ~/Backup.
