服务器运维的一点心得

环境

1,一共8台服务器,分布在三个不同的地点。为便于管理,采用FRP+某公网主机(假设ip为ipA),对这6台主机分别配置端口为:9911~9919。(9916暂时不可用)。主机的OS均为win10 x64。

2,服务器上时间运行某程序programA。此程序需要根据某些实际情况,不定期修改配置并重启程序。

3,programA可以带参数启动。但启动后,仍然需要借第三方工具再微调下参数。

运维的目标

  • 尽量保持程序稳定运行,减少中断;
  • 当修改配置文档后,能快速部署新的配置文档,快速切换。

选择主节点

根据负载、服务器性能等因素,选择9901服务器作为主节点,在此服务器上:

  1. 创建不同版本的配置文档,集中存放于某一个目录下(假设全路径为pathA)。
  2. 在其上面安装git,对配置文档进行版本化管理。有新增或者修改时,及时提交。
  3. 安装powergrep,便于快速批量修改配置文档。

所有节点

在全部的机器上,安装openssh server,并启动sshd服务。

配置SSH免密登录

1,在9911上,执行:

ssh-keygen -t rsa

得到id_rsa和id_rsa.pub两个文件。

2,在9911上执行

type id_rsa.pub >> authorized_keys

得到authorized_keys文件。

3,将上一步得到 authorized_keys文件,复制到9912~9919的C:\Users\your_userName\.ssh目录下。(如果没有此目录,则可手动创建,或者执行ssh-keygen后自动创建)

4,在9912~9919上,修改C:\ProgramData\ssh\sshd_config中的内容:

确认以下两行未被注释:

PubkeyAuthentication yes
AuthorizedKeysFile    .ssh/authorized_keys

#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

修改完后执行以下命令,重启sshd服务

net stop sshd && net start sshd

注:

参考:多台WIN10之间的SSH免密登录 - 知乎 不过,测试了一下,PasswordAuthentication no 可以保持其注释状态。

此时从9901应可实现ssh免密登录到9902~9909 

配置开机即运行

由于长时间运行服务器,可能会发生自重启的情况。针对这种情况,需要确保系统重启后,能自动启动programA。在全部的机器上:

1,写一个脚本(假设名为scriptA.bat),内容是切换到programA的目录,然后运行程序。

2,运行regedit,在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下,新建一个字符串类型的键值,键值的名称任意,键值的数据为脚本的全路径。

参考

Win10添加开机自动运行软件三种方法(亲测可用)_ruanhongbiao的专栏-CSDN博客_win10添加开机启动项

快速部署配置文件

1,写一个脚本,将9911上需要拷贝到9912~9919的文件,依照下列格式,继续复制。

scp -P 9912 local_config_file user_name@ipA:remote_config_file

配置自动登录

运行netplwiz,去掉下图中的勾选框。

注:如果没有此框,打开注册表编辑器,将HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device下的DevicePasswordLessBuildVersion的值,从2改为0。

以管理员身份运行bat

当nvidia的图形驱动程序的版本为457.1时,无需管理员权限便可运行bat。但驱动版本升级到471.96后,运行bat需要管理员权限。否则无法在命令参数中改变风扇速度等会报错。为解决此问题,在自动启动的脚本中,头部添加如下内容:

@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo 请求管理员权限...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin

参考:

 自动以管理员身份运行批处理bat文件(vbs与bat两种方法)_VBS_脚本之家

https://www.jb51.net/article/193692.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值