每日一言

:D 获取中...

为什么没发布?

首先,这的确是一篇很早就构思好的文章,但为什么没发布呢?主要是因为太懒了,实在是忘了网站迁移后金羽芊笔记一直在不断优化,抽不开身哈哈。

本文章起源

因为前些阵子恶搞导致服务器一直出问题,需要拷贝的部分文件要么特大要么文件特多,导致cp在这里十分鸡肋(我也没办法),随后就让dd和rsync逐渐替代了cp

简要

这篇文章不会深入的讲dd和rsync,仅作为一些小的心得(亦或是备忘录)

正文

dd本身可能并不是用于拷贝的,但是在其作为拷贝工具时体现出了令人惊奇的效率,具体如下:

ep. dd if=/path/to/InFile of=/path/to/OutFile

其中,if是源文件的路径,of是目标文件的路径。

ep. 我要将Windows_Server_2022.iso/root拷贝至/www/wwwroot/example.com/download/iso,则可以:

dd if=/root/Windows_Server_2022.iso of=/www/wwwroot/example.com/download.iso/Windows_Server_2022.iso

而rsync则更加适合进行极多文件的拷贝(包含本机或网络机器)(cp和scp的功能),因其可以以递归模式进行拷贝,在效率及性能占用上有着惊人的效率

ep. 本机:rsync -avz /path/to/* /another/path/to/,网络机器:rsync -avz -e 'ssh -p 22' /path/to/* username@ip:/another/path/to/

其中,-avz的解释如下:

  1. -a (archive mode): 归档模式,这个选项启用了递归传输,并保持文件属性(包括权限、所有权、时间戳等)。它等效于多个选项的组合:-rlptgoD
    • -r: 递归传输,处理目录及其内容。
    • -l: 复制符号链接。
    • -p: 保持文件权限。
    • -t: 保持文件时间戳。
    • -g: 保持文件的组信息。
    • -o: 保持文件的所有者信息。
    • -D: 保持设备文件和特殊文件信息。
  2. -v (verbose): 详细模式,这个选项会在传输过程中输出详细信息,让用户了解哪些文件被传输以及传输的进度。
  3. -z (compress): 压缩选项,在传输文件时对数据进行压缩,以减少传输过程中所使用的带宽。这对于网络传输速度较慢的情况特别有用。
    综合起来,使用 rsync -avz 命令时,它会:
    • 以归档模式递归传输文件,并保持文件的各种属性。
    • 在传输过程中提供详细信息输出。
    • 在传输时压缩数据,以节省带宽。

而一般情况下-e `ssh -p 22`是不必要的,这主要体现在ssh端口是否为默认的22,若你的网络机器端口为65535, 14514等,则需要增加-e `ssh -p [目标端口]`

ep. 若我要将~/114514/*拷贝至/www/wwwroot/114514/,则可以:

rsync -avz ~/114514/* /www/wwwroot/114514/

若我要将~/114514/*拷贝至192.168.6.168(端口14514,用户为root)/www/wwwroot/114514/,则可以:

rsync -avz -e 'ssh -p 14514` ~/114514/* root@192.168.6.168:/www/wwwroot/114514/

结语

行了今天就水到这吧,该摸鱼了