понедельник, 20 февраля 2012 г.

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

Возникла задача периодически сливать файлы на удаленный ftp сервер. Наиболее быстрый способ решить эту задачу - написать его скрипт на Perl
Вот весь код:


#!/usr/bin/perl -w
  my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime time; #получаем дату.(я в скрипте использую только $mday $mon и $year так как более подробная информация мне не нужна. Вы де можете использовать необходимое количество нужных переменных.)

system("rm -rf /voip/wav.*");  # Очищаем временную папку.
system("mv /voip/*.wav /voip/wav/"); # Перемешаем все необходимые файлы во временную папку.
system("tar czf /voip/wav\_$year\_$mon\_$mday\.tar.gz /voip/wav/*"); # архивируем временную папку. Имя архива в формате имя_год_месяц_день-создания.tar.gz

    $username="ftpuser"; #задаем ftpusername
    $password="ftppassword";# задаем ftppassword
    $filename="/voip/wav\_$year\_$mon\_$mday\.tar.gz"; # задаем имя архива который будем копировать по ftp
    use Net::FTP; # подключаем модуль Net::FTP
    $ftp = Net::FTP->new("ftp.server.loocal") or die "Couldn't connect\n"; # подключаемся к серверу.
    $ftp->login($username, $password) or die "Couldn't change login\n"; # Проверка логина/пароля
    $ftp->binary or die "Couldn't get binary";  # включаем режим передачи бинарных файлов.
    $ftp->put($filename) or die "Can't connect: $@\n"; # Заливаем файл на сервер.

Вот и все осталось только прописать запуск этого скрипта в кроне в нужное для нас время. С ие забыть дать права на запуск
chmod 7XX  /путь/к/файлу/скрипт.pl
Удачи вам в работе.
Если есть вопросы до пишите в каментах. По возможности постараюсь помочь.

Комментариев нет:

Отправить комментарий