自学内容网 自学内容网

SSH远程命令实践:如何打包、压缩并传输服务器文件

大家好,今天我要分享的是如何使用SSH命令来远程打包、压缩服务器上的文件,并将其传输到本地或其他服务器。这对于需要在远程服务器上进行文件备份或迁移的场景非常有用。

以下是本文的主要内容:

一、命令详解

我们要执行的命令是:

ssh root@192.168.3.157 "tar -C /mnt/UDISK -cvf - logs app_debug data/db data/map --exclude data/db/database.db-journal|gzip -ck" 1>logs.tar.gz

这条命令的作用如下:

  1. 通过SSH协议登录到IP地址为192.168.3.157的服务器,并以root用户身份执行命令。
  2. 使用tar命令在/mnt/UDISK目录下创建一个包含指定文件和目录的归档文件,并排除某个文件。
  3. 将tar命令的输出通过管道传递给gzip命令进行压缩。
  4. 将压缩后的数据流重定向到本地文件logs.tar.gz。

二、命令分解

  1. tar -C /mnt/UDISK -cvf - logs app_debug data/db data/map --exclude data/db/database.db-journal

    • -C /mnt/UDISK:指定tar命令的工作目录。
    • -cvf -:创建归档文件,并将内容输出到标准输出。
    • logs app_debug data/db data/map:指定要打包的文件和目录。
    • --exclude data/db/database.db-journal:排除不需要打包的文件。
  2. |gzip -ck

    • |:管道符号,将tar命令的输出传递给gzip命令。
    • gzip -ck:压缩数据,-c表示输出到标准输出,-k表示保留原始文件。
  3. 1>logs.tar.gz

    • 将gzip命令的输出重定向到本地文件logs.tar.gz。

三、文件传输

压缩后的文件已经通过SSH连接直接传输到了本地机器。如果你需要将文件传输到其他位置,可以使用以下命令:

  • 使用scp命令:
scp logs.tar.gz user@other_server_ip:/destination/path/
  • 使用sftp命令:
sftp user@other_server_ip
> put logs.tar.gz /destination/path/
  • 使用rsync命令:
rsync -avz logs.tar.gz user@other_server_ip:/destination/path/

四、总结

通过本文,我们学习了如何使用SSH命令远程打包、压缩并传输服务器文件。


原文地址:https://blog.csdn.net/scoone/article/details/144116772

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!