Вторник, 8 октября, 2024

Резервное копирование файлов на FTP-сервер с помощью Bash

Данный скрипт может быть полезен администраторам серверов, которые хотят создавать резервные копии важных файлов на FTP-сервере. Он может быть использован для автоматического создания резервных копий по расписанию, что упрощает процесс резервного копирования и уменьшает вероятность потери важных данных.
Кроме того, этот скрипт может быть использован в качестве основы для создания других скриптов, автоматически выполняющих задачи, связанные с резервным копированием или передачей файлов по протоколу FTP.

Данный bash-скрипт выполняет следующие задачи:

  1. Архивирует каталоги /etc/1, /etc/2 и файл /etc/3.conf в сжатый архив формата gzip.
  2. Исключает символические ссылки из архива.
  3. Подключается к FTP-серверу, используя предоставленные данные для подключения.
  4. Удаляет файл резервной копии с тем же именем, что и сжатый архив, на FTP-сервере (если такой файл существует).
  5. Загружает сжатый архив на FTP-сервер.
  6. Выводит журнал передачи FTP в файл с именем ftp_backup.log.
  7. Удаляет локальный сжатый архив.

Необходимо заменить 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

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь

Latest article

Must read