Windows 如何设置进程守护?如何开启 SSH、SCP、SFTP
进程守护
参考了很多,最适合的方案还是将进程作为服务常驻。
这里我使用了 nssm
这个工具已经很久不更新了,但是用起来已经非常好用。
nssm
作用
NSSM 将项目注册为服务后,启动、停止、重启皆由windows来管理,所以我们不必担心NSSM无法处理项目因意外的停止,而 Windows 的服务管理即可处理这些问题。
安装
1、下载 nssm
2、将32位 nssm.exe
文件解压,拷贝只 C:\windows
下。【备注:我这里使用的 64 windows server 2019,64 位无效,依然使用的 32 位】
使用
- 注册服务
nssm install {服务名称}
我注册的是 Celery,虽然它已经不支持 Windows,但我依然让它成功在 Windows 上运行成功了,而且作为守护进程。
- 修改服务
nssm edit {服务名称}
- 启动服务
nssm start {服务名称}
- 暂停服务
nssm stop {服务名称}
- 重新启动服务
nssm restart {服务名称}
- 删除服务
nssm remove {服务名称}
SSH、SCP、SFTP
想像 Linux
一样方便管理 Windows
,试试OpenSSH
OpenSSH
参考文档
作用
SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务。
安装
使用 PowerShell 安装 OpenSSH。
# Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
# Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
使用
启动并配置 OpenSSH 服务器
若要启动并配置 OpenSSH 服务器来开启使用,请以管理员身份打开 PowerShell,然后运行以下命令来启动 sshd service
# Start the sshd service
Start-Service sshd
# OPTIONAL but recommended:
Set-Service -Name sshd -StartupType 'Automatic'
# Confirm the firewall rule is configured. It should be created automatically by setup.
Get-NetFirewallRule -Name *ssh*
# There should be a firewall rule named "OpenSSH-Server-In-TCP", which should be enabled
# If the firewall does not exist, create one
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
完成,可以使用 账户密码登录了。
【备注:
1、备注文件在 C 盘隐藏目录 Program Data 下
2、如果设置 SFTP 或者 SCP,可以设置 ChrootDirectory
】
自动备份文件夹
- 根据 Windows 10 版本(32/64)按需下载 7zip。
- 安装完成后进入 7zip 安装目录,将 7z.dll、7z.exe 拷贝至
C:\windows\system32
文件夹下。 - 编写 bat 脚本。
7z.exe a "E:\bakckup\usr_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.7z" "E:\data\usr"
解释:使用 7z.exe 将 E:\data\usr 压缩为 E:\bakckup\usr_20...7z 文件。
4. 从左下角找到 所有应用 -> Windows 管理工具 -> 任务计划程序 打开新建任务。
5. 按照提示起名,添加触发器,操作设置中选刚才的 bat 脚本保存即可。