ローカルフォルダーの内容を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

ソリューション2

呼ばれる小型で簡単なスクリプトを作成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

ソリューション3

インストール curlftpfs

sudo apt-get install curlftpfs

FTPをローカルにマウントするには、これらのコマンドを実行する必要があります。

mkdir hostr

リモートFTPディレクトリをローカルにマウント

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

user: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' =アップロードするファイルを含むローカルフォルダ?
Edward Nunn

はい、はい。:)
2707974

このTransferring file Untitled 1.odt' mirror: /home/edward/bl3/bl2/bl1/Untitled 1.odt: No such file or directory Unknown command ;
Edward Nunn

ftpサーバーのパスに基づいてmeybeだけでなく/newフォルダ。両方のパスを確認してください。
2707974

source folderローカルにフォルダーを作成する場合、そのフォルダーはftpフォルダーと同期する必要があります。
2707974
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.