Rate this post
Недавно понадобился скрипт резервного копирования директории на FTP сервер + скрипт должен был удалять файлы старее Х дней.
Все решения сделанные на BASH были слишком громоздкими, а вторым вариантом на очереди после BASH скрипта, был скрипт написанный на Perl.
 
После недолгого поиска был найден скрипт бекапа на FTP, но без возможности удаления старых архивов. Поиск решения по удалению устаревших файлов для Perl не занял много времени. И вот подправив основной скрипт, получилось полноценное решение для бекапа, которое можно легко подстроить под себя.
Из настроек в скрипте есть следующие параметры:
# Удалять или нет созданный локально архив
$delete_backup = 0;
# Директория, в которую будет сохранен архив
$directory_to_backup = \’/tmp\’;
# Директория которую нужно архивировать
$backup_dest_dir = \’/root\’;
# Задаем формат имени файла архива
($a,$d,$d,$day,$month,$yearoffset,$r,$u,$o) = localtime();
$year = 1900 + $yearoffset;
$full_backup_file = «$backup_dest_dir/full_site_backup-$day-$month-$year.tar.gz»;
# Указываем период жизни архива
my $interval = 86400*2; # 2 day
# Параметры подключения к FTP серверу. $ftp_backup — включает или отключает копирование на FTP
$ftp_backup = 1;
$ftp_host = «ftp.server.com»;
$ftp_user = «user»;
$ftp_pwd = «password»;
$ftp_dir = «/backup»; 
Вот и все. Надеюсь это решение будет кому то полезно, потому что ничего подобного найти не удалось.
[attachment=3]