リモートコンピュータに非常に重要なデータをバックアップしたいと思います。
現時点では、次のコマンドを使用してローカルコンピュータに保存します。tar -cvjf ~/backups/Backup.tar.bz2 ~/importantfiles/*
リモートシステムに送信するために他のコマンドを使用したくありません。つまり、データをリモートシステムに転送できるように、このコマンドをアップグレードしたいと思います。
これは後でスクリプトで独立して実行するように設計されています。言い換えれば、必要なユーザー入力があれば完全に台無しになります!
それはまるで
tar -cvjf sftp://user:pwassword@host/Backup.tar.bz2 ~/importantfiles/*
tar -cvjf ftp://user:pwassword@host/Backup.tar.bz2 ~/importantfiles/*
完璧だよ! (パイプなどがなく、コマンド一つだけあればいいです!)
ベストアンサー1
SSHの場合:
tar czf - . | ssh remote "( cd /somewhere ; cat > file.tar.gz )"
SFTPの場合:
outfile=/tmp/test.tar.gz
tar cvf $outfile . && echo "put $outfile" | sftp remote:/tmp/
Connecting to remote...
Changing to: /tmp/
sftp> put /tmp/test.tar.gz
Uploading /tmp/test.tar.gz to /tmp/test.tar.gz
/tmp/test.tar.gz
別のSFTP:
outfile=/tmp/test.tar.gz
sftp -b /dev/stdin remote >/dev/null 2>&1 << EOF
cd /tmp
get $outfile
bye
EOF
echo $?
0