Возникла задача периодически сливать файлы на удаленный 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
Удачи вам в работе.
Если есть вопросы до пишите в каментах. По возможности постараюсь помочь.
Вот весь код:
#!/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
Удачи вам в работе.
Если есть вопросы до пишите в каментах. По возможности постараюсь помочь.
Комментариев нет:
Отправить комментарий