如何使用 sftp 或 ftp 使 tar 将存档保存在远程机器上?

Bra*_*one 10 bash ftp sftp tar remote

我想在远程机器上备份我的一些非常重要的数据。
目前我只是使用以下命令将它保存到我的本地机器上: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/*
Run Code Online (Sandbox Code Playgroud)

将会是完美的!(没有管道(等),只有一个命令!)

jir*_*rib 14

对于 SSH:

tar czf - . | ssh remote "( cd /somewhere ; cat > file.tar.gz )"
Run Code Online (Sandbox Code Playgroud)

对于 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
Run Code Online (Sandbox Code Playgroud)

另一个 SFTP:

outfile=/tmp/test.tar.gz
sftp -b /dev/stdin remote >/dev/null 2>&1 << EOF
cd /tmp
get $outfile
bye
EOF
echo $?
0
Run Code Online (Sandbox Code Playgroud)