Данный скрипт может быть полезен администраторам серверов, которые хотят создавать резервные копии важных файлов на FTP-сервере. Он может быть использован для автоматического создания резервных копий по расписанию, что упрощает процесс резервного копирования и уменьшает вероятность потери важных данных.
Кроме того, этот скрипт может быть использован в качестве основы для создания других скриптов, автоматически выполняющих задачи, связанные с резервным копированием или передачей файлов по протоколу FTP.
Данный bash-скрипт выполняет следующие задачи:
- Архивирует каталоги /etc/1, /etc/2 и файл /etc/3.conf в сжатый архив формата gzip.
- Исключает символические ссылки из архива.
- Подключается к FTP-серверу, используя предоставленные данные для подключения.
- Удаляет файл резервной копии с тем же именем, что и сжатый архив, на FTP-сервере (если такой файл существует).
- Загружает сжатый архив на FTP-сервер.
- Выводит журнал передачи FTP в файл с именем ftp_backup.log.
- Удаляет локальный сжатый архив.
Необходимо заменить ftp.example.com, username и password на фактические данные для подключения к вашему FTP-серверу. Журналы будут сохранены в файле, указанном в переменной log_file.
#!/bin/bash # Name of the archive file filename="etc_backup.tar.gz" # Compress the /etc/1, /etc/2 and /etc/3.conf directories into a gz archive (excluding symbolic links) tar -zcvf $filename --exclude='*/symlinks/*' /etc/1 /etc/2 /etc/3.conf # FTP connection details ftp_server="ftp.example.com" ftp_user="username" ftp_password="password" # File to store the logs log_file="ftp_backup.log" # Copy the archive to the FTP server ftp -inv $ftp_server >> $log_file 2>&1 << EOF user $ftp_user $ftp_password delete $filename put $filename quit EOF # Remove the local archive file rm $filename