平时常用的是Windows的笔记本,想一键把写好的博客同步到服务器上,但又懒得折腾cygwin装rsync(两端都是Linux的话rsync当然就是首选了),最后还是用WinSCP的脚本来实现文件同步。
获取会话URL
首先使用WinSCP登入到服务器,然后在工具栏标签页->生成会话URL/代码
生成会话URL。这里至少需要勾选用户名
和SSH主机密钥
,其他项目任意。建议不勾选密码
,在执行脚本时会提示输入密码验证。URL形如以下格式:
sftp://<username>;fingerprint=ssh-<fingerprint>@<hostname>:<port>/
编写WinSCP脚本
我的目的只是同步本地的静态网站文件到远程目录,所以脚本内容也很简单。
2024-03-07编辑:
更改criteria为size和checksum,当文件大小和校验和都不变时认为文件未发生变化,减少重复传输。
open sftp://<username>;fingerprint=ssh-<fingerprint>@<hostname>:<port>/
synchronize remote <local_path> <remote_path> -delete -criteria=size,checksum -transfer=binary
exit
执行脚本
执行脚本时需要用到WinSCP.com
,我安装在默认路径,可能需要根据实际情况修改。写成批处理就很简单了,不赘述。
"C:\Program Files (x86)\WinSCP\WinSCP.com" /ini=nul /script="<path_to_script>\sync.txt"