ssh.exe / scp.exe / 7za.exe 的使用

–help,另外7za的差异备份功能很好用!

ssh.exe使用帮助

ssh.exe user@ip [-p port -i file.pem] [-D 1080|-L Lport:rIP:rPort|-R rPort:Lip:Lport] [-N -o ServerAliveInterval=45 -o ServerAliveCountMax=3] [ping localhost]
  • -L中Lport是ssh监听/app cli请求端口,rPort是ssh转发目标/app srv服务端口;-R中rPort是ssh监听,Lport是ssh转发目标
  • -N是无shell,-C是压缩,两个 -o 是客户端为了保持连接

scp.exe 使用帮助

  • 上传 scp.exe -p port -i file.pem d:\upfile.txt user@ip:/C:/
  • 下载 scp.exe -p port -i file.pem user@ip:/C:/downfile.txt d:\

7za.exe使用帮助

示例一、将 D:\abc 目录及子目录与文件打包为 abc.7z ,但排除 D:\abc\123 目录及子目录与文件。

7za a -t7z abc.7z D:\abc -xr!D:\abc\123

  • 由于是单个源目录 D:\abc ,不需要指定 -r 递归D:\abc子目录;另外,-xr! 排除目录及子目录的文件。
  • 由于是单个源目录 D:\abc ,不需要指定 -spf2 保留目录结构的压缩文件,且 abc.7z 的根目录为 abc 。

示例二、将 D:\addList.txt 中的文件清单,打包到 filename.7z

7za a -t7z -pzipPassword -scsWIN -spf2 filename.7z @D:\addList.txt

7za a -t7z -spf2 abc.7z D:\abc C:\124 D:\546

  • -pzipPassword压缩的7z文件密码是zipPassword;
  • -spf2 保留目录结构的压缩文件,如果以list文件输入或指定多个源路径<7z a -tzip archive.zip -r src\*.cpp src\*.h>时,压缩 包内没有目录结构,所有文件平铺。
  • -scsWIN 以WIN格式读取@List.txt

示例三、通过-r-/*.*组合,实现只压缩目录下的文件,不会压缩子目录。

7za a test.7z -r- /rpFiles/*.*

示例四、解压

  • 解压到当前目录:7z x archive.zip
  • 使用密码[-p]解压zip中,[-r]所有目录与子目录下*.cpp 文件,[-o]c:\soft目录。
    • 7z x archive.zip -p{password} -oc:\soft *.cpp -r
  • 使用指定格式udf解压:7z x -tudf archive.iso

7za -u 差分备份使用

7za u -mtm D:\FullBase.7z -r C:\YourFolder\*.txt -r -u- -up0q3r2x2y2z0w2!D:\Diff1.7z
  1. 之前执行过 7za a -mtm D:\FullBase.7z -r C:\YourFolder\*.txt
  2. -u-: 现在要在不更新D:\FullBase.7z的情况下,生成差分文件D:\Diff1.7z
  3. 通配符 * 默认不会匹配以点(.)开头的隐藏文件
  4. 恢复有顺序要求,先解压FullBase.7z,后Diff1.7z,不能乱。
  5. 差分的过滤器*.txt,最好与基准的过滤器*.txt保持一致,这样p0就不会用到。但如果不一样,p状态的操作,是以差分压缩的过滤器为准。
  6. 差分与增量的区别:差分是相对于基准的差异备份,而增量备份链,是每次基于上一次备份的结果链后的差异备份。
  7. -up0q3r2x2y2z0w2 为差分处理命令,依赖于文件修改时间,所以要使用-mtm明确。

-uxxyyzz:为字母状态+数字动作,不仅是7za u使用,7za a/d都支持。

动作有4个:0忽略,1复制,2压缩,3删除(在解压期间会删除文件或目录的项目,只支持7z格式)

-up0q3r2x2y2z0w2 的含义

状态字母状态含义 (什么情况会触发)动作数字动作含义 (触发后怎么做)组合效果
p文件存在于旧归档,但不匹配通配符0忽略p0:忽略这些“孤岛”文件,不放入差分包。
q文件存在于旧归档,但磁盘上已不存在3创建反条目q3:为这些已删除的文件创建一个“反条目”,这样在将来恢复时,这些文件也会被自动删除。
r文件不存在于旧归档,但磁盘上存在2压缩r2:将这些新文件压缩,并放入差分包。
x文件在归档中比磁盘上的更新2压缩x2:这种情况通常意味着磁盘文件更旧?但实际上,7-Zip这里的逻辑是,如果归档文件更新,就把磁盘上的旧文件重新压缩加入差分包。
y文件在归档中比磁盘上的更旧2压缩y2:这是最常见的情况,文件被修改了,把磁盘上的新文件压缩放入差分包。
z文件在归档中与磁盘上的相同0忽略z0:文件没变,直接忽略,不放入差分包。
w无法检测哪个更新 (例如时间相同但大小不同)2压缩w2:无法确定时就当做修改了,把磁盘上的文件压缩放入差分包。

p与z的区别

状态触发条件通俗理解
z文件既存在于归档中,也存在于磁盘上,且 7-Zip 对两者进行了比较,发现它们完全相同(时间、大小、属性等一致)。“老熟人,没变样。” 文件参与了“选秀”(比较),评委(7-Zip)说它和上次一样。
p文件存在于归档中,但不在本次命令的处理范围内(例如被通配符排除,或者不在指定的源路径中),因此没有进行比较“局外人,没参赛。” 文件根本没进入“选秀”现场,所以不讨论它变没变。
  • z0 告诉程序:比较过且相同的旧文件,不要放进新包。
  • p0 告诉程序:那些我没打算处理(被排除)的旧文件,也不要放进新包。

发表回复