Установка LFTP для удаленного копирования файлов по протоколу FTP с сервера на удаленный FTP
LFTP - программа для удаленного копирования файлов по протоколу FTP с сервера на удаленный FTP сервер.
Для установки LFTP должно быть установлено на сервере следующее программное обеспечение: gcc, gcc-c++, readline-devel, ncurses-devel и gnutls-devel
Установка требуемого ПО для компиляции пакета LFTP
yum install gcc gcc-c++ readline-devel ncurses-devel gnutls-devel -y
Если какой то из пакетов уже установлен, то система обновит его до последней версии, если пакет стоит последней версии, то он будет пропущен.
Установка пакета LFTP
На момент написания статьи была использована версия lftp-4.0.4.
Последнюю версию на данный момент можно найти на странице официального сайта http://lftp.yar.ru/get.html
Скачиваем, распаковываем и компилируем пакет LFTP:
cd /tmp wget http://ftp.yars.free.net/pub/source/lftp/lftp-4.0.4.tar.gz tar xzf lftp-4.0.4.tar.gz cd lftp-4.0.4 ./configure make make install
Теперь пакет LFTP установлен и его можно запустить, набрав в шелле команду lftp...
Команды использования LFTP
Есть несколько вариантов использования, но мы рассматриваем вариант полной и частичной синхронизации каталогов и файлов.
Ключи программы LFTP:
-е - указывает программе, что файл должен быть перезаписан если в нем были изменения.
-R - указывает копировать все что есть в каталога в месте с подкаталогами.
-u - логин,пароль от FTP (Пример: у Вас логин на ftp - ftplogin и пароль на ftp - ftppass , то вводим "-u ftplogin,ftppass" - логин,пароль именно так без пробелов и через запятую).
В нашем примере использованы следующие наименования:
USER - имя Вашего пользователя
you-domain.ua - имя Вашего домена
ftplogin - логин ftp
ftppass - пароль ftp
Полное копирование директории со всем содержимым на удаленный сервер.
Если файлы совпадают по размеру, то они не перезапишутся!!!
К примеру нам надо скопировать файлы с сервера из директории /home/USER/public_html/ на удаленный сервер по ФТП в директорию /home/USER/public_html/, если файлы такие есть и их содержимое не совпадает, то программа заменит эти файлы, если файлы совпадают, то программа пропустит их и оставит их без изменений:
lftp -c 'open youdomain.ua/public_html/ -u ftplogin,ftppass; mirror -R /home/USER/public_html;'
Установка задания в крон.
К примеру нам надо чтоб под пользователем USER задание крона выполнялось в 0 часов, то добавляем так:
echo '0 0 * * * /usr/local/bin/lftp -c open youdomain.ua/public_html/ -u ftplogin,ftppass; mirror -R /home/USER/public_html;"' > /var/spool/cron/USER
Копирование одного файла на удаленный сервер.
Если файл совпадет по размеру, то он не перезапишется!!!
К примеру нам надо передать файл test.php из директории /home/USER/public_html/ на удаленный сервер по ФТП в директорию /home/USER/public_html/:
lftp -c 'open youdomain.ua/public_html/ -u ftplogin,ftppass; mirror -R /home/USER/public_html/test.php;'
Установка задания в крон.
К примеру нам надо чтоб под пользователем USER задание крона выполнялось в 0 часов, то добавляем так:
echo '0 0 * * * /usr/local/bin/lftp -c open youdomain.ua/public_html/ -u ftplogin,ftppass; mirror -R /home/USER/public_html/test.php;"' > /var/spool/cron/USER