BLOGTIMES
2021/07/21

lftp で sftp のディレクトリを同期

  cli  ssh 
このエントリーをはてなブックマークに追加

sftp は rsync のようにディレクトリ間の同期ができないので、手軽になんとかする方法がないかと思って調べてみたら「LFTP - sophisticated file transfer program」を使うと 良さそうだったのでメモ。

こんな感じで実装できました。

#!/bin/bash SCRIPT_DIR=`dirname $0` cd $SCRIPT_DIR SFTP_HOST=sftp-host.example.com SFTP_USER=sftp_user SFTP_PORT=22 SFTP_KEY=./id_rsa SFTP_REMOTE_DIR=/foo SFTP_LOCAL_DIR=./foo SFTP_DRY_RUN=1 # Comment out when you have finished testing. export LFTP_PASSWORD="" # Don't ask password lftp "sftp://${SFTP_USER}@${SFTP_HOST}:${SFTP_PORT}" --env-password -e " set sftp:connect-program 'ssh -i ${SFTP_KEY}' mirror ${SFTP_DRY_RUN:+--dry-run} -v '${SFTP_REMOTE_DIR}' '${SFTP_LOCAL_DIR}' ; bye ; "

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/12605
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン