知识点
命令行
- CMD
生成密钥
1 | ssh-keygen -t rsa |
CMD 设置 UTF8 编码
1 | chcp 65001 |
服务端
配置文件
1 | vi /etc/rsyncd.conf |
看看端口
1 | netstat -ntpl |
如果没有 873 端口的话,就肯定是没安装 xinetd!
1 | yum -y install xinetd rsync |
启动
1 | service xinetd restart |
就好了!
发布博客
安装 HEXO
1 | npm install hexo-cli -g |
配置文件
_config.yml
1 | # Deployment |
发布
1 | hexo g |
如果在 Linux 上或 Mac 上这样就成功了
Windows上通过子系统发布博客
如果服务端不想配置Rsync服务,也就是说要通过SSH认证上传文件,直接使用Windows下的客户端一直不成功,不知道是不是BUG,所以这里使用曲线救国的方式,在Windows子系统中来执行发布命令。
安装 Linux
Win10 先更新到新版本
控制面板=>程序=>启动或关闭 Windows 功能=>勾选适用于 Linux 的 Windows 子系统
下载地址
注意通过上面的连接下载的为新版本
20.04
也可以搜索Ubuntu 18.04 LTS
下载旧版本
建议安装Ubuntu 18.04 LTS
安装 Ubuntu
报错
WslRegisterDistribution failed with error: 0x8007019e
The Windows Subsystem for Linux optional component is not enabled. Please enable it and try again.
See https://aka.ms/wslinstall for details.
1.win+x,选择 Windows PowerShell(管理员) 2.输入:
1 | Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux |
3.回车,输入 Y,重启! 4.重新打开已经安装的子系统,等几分钟,输入账户和密码。
安装后默认用 cmd 进入后输入 bash 即可进入
进入 Ubuntu
1 | bash |
切换为 root 用户
1 | sudo su |
安装 Node 和 NPM
更新 Ubuntu 软件源
1 | curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - |
安装 nodejs
1 | sudo apt-get install -y nodejs |
更新 npm 的包镜像源,方便快速下载
1 | sudo npm config set registry https://registry.npm.taobao.org |
恢复
1 | sudo npm config set registry https://registry.npmjs.org |
解决下载慢问题
安装编译环境
1 | sudo apt-get update |
设置 npm 镜像
1 | npm config -g set registry https://registry.npm.taobao.org |
Node 版本切换
注意
这个和 nvm 作用一样 安装其一就可以
全局安装 n 管理器(用于管理 nodejs 版本)
1 | sudo npm install n -g |
安装 nodejs12
1 | sudo n 12 |
其它版本安装
1 | sudo n latest |
删除某个版本
1 | sudo n rm 10.13.0 |
使用 n 切换版本(按上下键选择版本后,回车)
1 | sudo n # 回车后选择版本 |
查看安装的版本
1 | sudo node -v |
注意
不要安装新版,我安装的 14 就会导致生成页面全是空白。我这里推荐 12 版本。
安装 Rsync
系统一般自带,这步可跳过,没有再安装。
1 | apt install rsync |
测试 rsync 是否可用
进入项目后
1 | cd /mnt/c/Users/Jian/Documents/project/myblog |
发布
1 | rsync -avz ./public/ root@110.110.110.110:/data/myblog/ |
安装 Hexo
安装 Hexo
1 | npm install hexo-cli -g |
部署
1 | sudo hexo g |
免密发布
Ubuntu 系统的路径
1 | C:\Users\Jian\AppData\Local\Packages |
里面找到类似于CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
这样的文件夹
.ssh 的目录在
1 | C:\Users\Jian\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\root\.ssh |
就可以把我们的公钥和私钥在这生成或者复制到这里
其他用户路径
1 | C:\Users\Jian\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\psvmc\.ssh |
还要设置文件的访问权限
1 | chmod 700 ./* |
这里不能给组和其它用户设置权限 否者也不行
Windows上直接发布博客
安装hexo
设置镜像
1 | npm config set registry https://registry.npmmirror.com/ |
安装hexo
1 | npm install hexo-cli -g |
同步客户端配置
Windows客户端cwRsync
链接:https://pan.baidu.com/s/1UYohMerxywZ_1tYEUtA6Og
提取码:psvm
设置环境变量
1 | D:\Program Files (x86)\cwRsync\bin |
注意上面的最好放在%SYSTEMROOT%\System32\OpenSSH\
后面
否则在使用ssh
命令的时候查找的证书不是C:\Users\Administrator\.ssh
下载chown.exe
放在客户端安装目录D:\Program Files (x86)\cwRsync\bin
创建认证文件
1 | chmod -c 600 /cygdrive/d/auth.txt |
注意
上面的执行要用管理员身份执行。
administrator
改为实际的用户名比如
chown DELL /cygdrive/d/auth.txt
测试
1 | chmod -R 777 ./public |
同步服务端配置
https://www.psvmc.cn/article/2022-11-21-rsync-config.html
博客发布脚本
SSH认证的方式不需要配置就能同步文件,在Linux和Linux之间完全没问题,但是从Windows向Linux同步文件就一直不成功。
这里就采用rsync-daemon 认证的方式来从从Windows向Linux同步文件。
fabu.bat
1 | @echo off |