воскресенье, 3 февраля 2019 г.

Копирование файлов из Windows на FTP по расписанию


Отправку на FTP осуществляет программа WinSCP, позволяющая скриптовать необходимые действия (документация).
Для начала необходимо скачать WinSCP версию portable.
Создаем bat-файл FTPcopy.bat:
set YYYY=%date:~6,4%
set MM=%date:~3,2%
set DD=%date:~0,2%
set HH=%time:~0,2%
set min=%time:~3,2%
set ss=%time:~6,2%
set d=D:\FTPlogs
mkdir %d%\%YYYY%
mkdir %d%\%YYYY%\%MM%
set DAT=%DD%-%MM%-%YYYY%-%HH%-%min%-%ss%.log
::Удаляем пробелы из переменной
set DAT=%DAT: =%
set f=%d%\%YYYY%\%MM%\%DAT%
::Создаем пустой файл лога заранее, иначе детального логирования не будет
copy nul %f%
for /R "D:\Bases" %%x in (*.bak) do (
C:\utils\WinSCP\winscp.com /loglevel=2 /log=%f% /command "open ftp://user:password@ipaddress" "put %%x /" "exit")
Этот файл рекурсивно ищет в дереве каталога "D:\Bases" bak-файлы, подключается к FTP, копирует, отключается.

Создаем bat-файл FTPbackup.bat:
set YYYY=%date:~6,4%
set MM=%date:~3,2%
set DD=%date:~0,2%
set HH=%time:~0,2%
set min=%time:~3,2%
set ss=%time:~6,2%
set d=D:\FTPlogs
mkdir %d%\%YYYY%
mkdir %d%\%YYYY%\%MM%
set DAT=sum-%DD%-%MM%-%YYYY%-%HH%-%min%-%ss%.txt
::Удаляем пробелы из переменной
set DAT=%DAT: =%
set f=%d%\%YYYY%\%MM%\%DAT%
C:\bat\FTPcopy.bat>%f%
Этот файл запускает FTPcopy.bat с укрупненным логированием результатов в D:\FTPlogs\Год\Месяц\День-Месяц-Год-Час-Минута-Секунда.txt

Файл FTPbackup.bat добавляем в планировщик заданий Windows.

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

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