Як автоматично синхронізувати вміст локальної папки із вмістом папки ftp?


9

Після пошуку скрізь мені не вдалося знайти конкретної відповіді на моє запитання.

У Windows є додаток під назвою FTPbox, який автоматично синхронізує локальну папку з ftp кожний встановлений проміжок часу.

Моє запитання: як я можу досягти того самого, використовуючи Ubuntu? Тут головне, що я не хочу робити це вручну. Це має бути абсолютно автоматичним процесом, не вимагаючи втручання людини (очевидно, мені доведеться це налаштувати, якщо це класи як втручання людини LOL).

Велике спасибі в очікуванні корисних відповідей.

-Вперед

Відповіді:


16

Перше рішення

Встановити lftp

sudo apt-get install lftp

після цього створіть сценарій

#!/bin/bash
HOST='mysite.com'
USER='myuser'
PASS='myuser'
TARGETFOLDER='/new'
SOURCEFOLDER='/home/myuser/backups'

lftp -f "
open $HOST
user $USER $PASS
lcd $SOURCEFOLDER
mirror --reverse --delete --verbose $SOURCEFOLDER $TARGETFOLDER
bye
"

Збережіть його на якомусь місці з назвою upload.sh. Дайте +xдозвіл.

sudo chmod +x /path_to_script/upload.sh

Налаштування crontabдля запуску цієї команди xпротягом кожного періоду часу

Для редагування запуску crontab

crontab -e

Для виконання команди на кожні 5 хв є код

 */5 * * * * /path_to_script/upload.sh

щогодини

 0 */1 * * * /path_to_script/upload.sh

бігати о 4 ранку

 0 4 * * * /path_to_script/upload.sh

Рішення два

Щоб створити невеликий і легкий скрипт , lftp-scriptякий LFTPможе читати:

open ftp://username:password@website.com
mirror -v --only-newer /home/local/path/ /website.com/public_html/

Нарешті, ви можете запустити LFTPта запустити синхронізацію. Встановіть crontab так, як я пишу, але поставте команду

lftp -f /path/to/lftp-script

щось на зразок цього

 */5 * * * * lftp -f /path/to/lftp-script

Рішення три

Встановити curlftpfs

sudo apt-get install curlftpfs

вам потрібно зробити для того, щоб локально встановити ftp - це запустити ці команди, створити dir witch буде синхронізовано

mkdir hostr

підключити віддалений ftp dir до локального

sudo curlftpfs -o allow_other ftp://user:pass@ftp.example.com host

користувач: pass - це ім'я користувача та пароль для входу в ftp-акаунт.

Ви можете додати curlftpfsдо fstabавтоматичного монтажу за допомогою цього рядка:

curlftpfs#user:pass@ftp.example.com /mnt/host fuse rw,uid=500,user,noauto 0 0

1
TARGETFOLDER = '/ new' = папка у ftp? SOURCEFOLDER = '/ home / myuser / backups' = локальна папка з файлами, які я хочу завантажити?
Едвард Нанн

так і так. :)
2707974

вимовляючи цей файл передачі Untitled 1.odt' mirror: /home/edward/bl3/bl2/bl1/Untitled 1.odt: No such file or directory Unknown command ; '
Едвард Нанн

На основі ftp-сервера шлях може бути не тільки /newпапкою. Перевірте обидва шляху.
2707974

Якщо ви створюєте папку source folderлокально, ця папка повинна бути синхронізована з папкою ftp.
2707974
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.