如何使用ssh将输出从本地传输到远程服务器

在 Bash 中,使用管道(“|”符号)和 ssh 将服务器管理工具完美结合,安全可靠。

示例。

  • 从本地到远程服务器的文件备份:
tar zcf - /some/directory | ssh username@server "cat > backup.tar.gz"

或者同样的事情,改用转储:

tar zcf - /some/directory | ssh username@server "dd of=filename.bz2"
  • 从本地到远程服务器的输出:
echo "some text" | ssh username@example.com "cat > somefile.txt"

或者

cat ~/.ssh/id_rsa.pub | ssh username@example.com "cat >> ~/.ssh/authorized_keys"
  • 将本地 mysql 数据库备份到远程服务器:
mysqldump --opt database_name | gzip -c | ssh username@example.com "cat > /remote/dir/DB_backup.gz"

或者使用 tar 备份数据库:

mysqldump | tar cf - | gzip -c | ssh username@example.com "cat > /remote/dir/DB_backup.tar.gz"
  • 在远程服务器上执行命令:
ssh username@example.com "uname -a"

或者在远程服务器上执行命令但将输出保存到本地:

ssh user@example.com "mysqldump -u DB_username -pDB_password DB_name | gzip -c" > /local/dir/DB_backup.gz

“mysqldump”的“-p”参数需要紧跟在参数后面的值,不能有空格。

日期:2020-06-02 22:17:17 来源:oir作者:oir