Синхронизация по FTP
Иногда возникает необходимость сделать копию удалённого ресурса через FTP. Для Linux имеется замечательный инструмент - lftp. Пример скрипта:
#!/bin/bash
HOST='ftp-server.com'
USER='root'
PASS='Qwerty123'
TARGETFOLDER='/mnt/backup'
SOURCEFOLDER='/'
lftp -f "
open $HOST
user $USER $PASS
lcd $SOURCEFOLDER
mirror --use-cache --verbose $SOURCEFOLDER $TARGETFOLDER -e -x ^\..+/$ -x ^trash/
bye
"
В результате из корня серврера ftp-server.com сливается всё, за исключением скрытых директорий (-x ^\..+/$), а так же директории trash, лежащей в корне сервера (-x ^trash/).
Ключи:
-e- удалить из локальной директории всё то, чего нет на удалённом сервере;-x- позволяет задать исключения из обработки, что позволяет не скачивать лишнего с сервера, а так же позволяет сохранить в локальной копии то, чего нет на удалённом сервере при использовании ключа-e, воспринимает параметр как регулярное выражение (т.е.^trash/исключит папку в корне сервера, аtrashисключит всё, что содержит в пути данную комбинацию);-R- этот ключ позволяет загружать данные из локальной директории на FTP-сервер.