插件背景

最近一个小伙伴因为工作上需要一直更新公司内网GITBOOK,但是内网又没有部署GIT

so,这位同学居然采取的措施是每次连上ssh然后再FTP更新文件。

作为一个懒人,我是觉得容忍不了这种毫无技术含量的重复劳动。

脚本

脚本其实很简单,就是把平常的指令写成bat文件,然后每次需要更新的时候直接执行这个脚本就行。

现在很多服务器其实没有启动ftp服务,都是sftp,所有这里有个坑!!!!!

自带的sftp没有办法直接越过输入密码那一关!!!!!!

自带的sftp没有办法直接越过输入密码那一关!!!!!!

自带的sftp没有办法直接越过输入密码那一关!!!!!!

所以,必须采用第三方的sftp软件。

个人觉得psftp比较好用,免安装,放到脚本同级目录下,就可以在脚本里直接调用

psftphttps://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off
set user=登录用户
set pw=登录密码
set host=登录ip
set mdPath=md文件需要保存的路径
set assetsPath=asset文件保存路径

echo %pw%>pw.up
echo cd %mdPath%>sftp.up
echo mput -r *.md>>sftp.up
echo cd %assetsPath%>>sftp.up
echo mput -r *.assets>>sftp.up
echo bye>>sftp.up

psftp -b "sftp.up" %user%@%host% <pw.up
@echo off
del /f sftp.up pw.up
pause

编码问题

一般这么操作完后的文件名是乱码的,没啥好的解决办法,安装一个工具吧convmv

反正每次执行完上传文件都会把gitbook重启一次,现在刚好有个shell脚本在持续监控运行,那么在脚本里填一句转换的语句呗

1
convmv -f gbk -t utf8 -r --notest [此处填写路径]

这样就可以在启动运行的时候把整个文件夹和文件的名字修正过来