利用群晖NAS+shell脚本实现运维命令执行结果文件自动上传

admin 2023年6月16日03:29:08评论129 views字数 3404阅读11分20秒阅读模式

利用群晖NAS+shell脚本实现运维命令执行结果文件自动上传

一、 需求场景如下

通过堡垒机批量运维Linux服务器,例如执行命令后的结果输出到文件后,然后将输出的结果文件统一发送到一个文件服务器上进行汇总

然后登录这个文件服务器上批量查看结果文件

二、实现过程思考

1、可以用使用群晖NAS作为这个文件服务器,但是通过什么协议上传会比较方便一点,上传时要考虑能够免输入账号密码 

这时scp或者rsync会比较合适 

利用群晖NAS+shell脚本实现运维命令执行结果文件自动上传

(图片点击放大查看)

2、群晖需要开启rsync

利用群晖NAS+shell脚本实现运维命令执行结果文件自动上传

(图片点击放大查看)

3、如果用rsync方式的话上传过来,需要考虑到多台服务器上传过来时,在文件名中加入对应服务器IP或者主机名进行区分

参考群晖官网的文档《如何通过SSH使用RSA密钥对登录DSM?》后,编写脚本最终实现了需求

https://kb.synology.cn/zh-cn/DSM/tutorial/How_to_log_in_to_DSM_with_key_pairs_as_admin_or_root_permission_via_SSH_on_computers

三、具体的实现步骤

1、SSH登录群晖NAS

sudo -i 切换成root用户
生成密钥
ssh-keygen -t rsa -b 2048


cp id_rsa.pub /volume1/homes/yuanfan/.ssh/authorized_keys
cp id_rsa /volume1/homes/yuanfan/.ssh/nas_id_rsa.pem

利用群晖NAS+shell脚本实现运维命令执行结果文件自动上传

(图片点击放大查看)

再退出root用户

cd .ssh/
chown -R yuanfan:users authorized_keys

利用群晖NAS+shell脚本实现运维命令执行结果文件自动上传

(图片点击放大查看)

2、然后NAS Web界面上面下载这个nas_id_rsa.pem

利用群晖NAS+shell脚本实现运维命令执行结果文件自动上传

(图片点击放大查看)

上传这个Linux服务器上面 

测试是否可以免密登录NAS的SSH

chmod 0600 nas_id_rsa.pem
ssh -i nas_id_rsa.pem [email protected] 

利用群晖NAS+shell脚本实现运维命令执行结果文件自动上传

(图片点击放大查看)

3、编写脚本

执行命令后的结果输出到文件后,然后将输出的结果文件统一发送到NAS文件服务器的这个路径/volume1/ShareFolder/LinuxServer_commandresult

例如要执行的命令是df -PTh(这里只是简单举例,方便演示)

这里为了省去每台服务器上都上传密钥文件,直接将密钥文件内容转到文件的过程写到脚本中

server_command_result-upload.sh

利用群晖NAS+shell脚本实现运维命令执行结果文件自动上传

(图片点击放大查看)

vim server_command_result-upload.sh
#!/bin/bash
cat >  /tmp/nas_id_rsa.pem  << EOF
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
NhAAAAAwEAAQAAAQEAy0SKLeKH7Pa1DU1HEND2GBKj9GkH9iq0rQqDkaXM0jZbHBcV0pe3
YpVzwlsxETfwMMJmJVt/Ihxj/5LPRa9M+vAhmMb1Nj58FLG3UMVpp9pBwJCU4xAR1ou74N
tSwfrTdjOhzMGPen+Lnht5/P6/4rH74cJ9sSbO6DrKR8sNOZZYxql7RHs+sbLFAI0RUQhn
xTBskSVtBqVX9M2wg5F3txdkjZbGYnHjkKzZhMt7rWuVs2m5xsGc60fa77xeaPGSYHChWw
SAUZQQ1KZSNJFshaEyl7wMwm2UVR3w48RxgdHxy/iOZ8VMxSqxd2NIGyLQTxD3PAvnNcyc
YXh0prfU5QAAA8g8H4q7PB+KuwAAAAdzc2gtcnNhAAABAQDLRIot4ofs9rUNTUcQ0PYYEq
P0aQf2KrStCoORpczSNlscFxXSl7dilXPCWzERN/AwwmYlW38iHGP/ks9Fr0z68CGYxvU2
PnwUsbdQxWmn2kHAkJTjEBHWi7vg21LB+tN2M6HMwY96f4ueG3n8/r/isfvhwn2xJs7oOs
pHyw05lljGqXtEez6xssUAjRFRCGfFMGyRJW0GpVf0zbCDkXe3F2SNlsZiceOQrNmEy3ut
a5WzabnGwZzrR9rvvF5o8ZJgcKFbBIBRlBDUplI0kWyFoTKXvAzCbZRVHfDjxHGB0fHL+I
5nxUzFKrF3Y0gbItBPEPc8C+c1zJxheHSmt9TlAAAAAwEAAQAAAQBA0qbOY0O9yh+LEm3r
avhQTQGEXEpxssTTulqjBCEBmNwNZT9MXZ3aDpdQEAzh1NkAc75ng3pTwoIRaxw2uOTv0c
ylEC37Eoo3f0VauNos8Wmuo20XzHQj24Qa/VazDe6J74VV6xR6mFpKHbEVgZhoDyKoqIG1
EQ9C+ByyMIsTJdD9Dbw9Oe6zdL/I5aLHIDb7I8nCNWgSEu/GLdMBRruQlE9e5CwG7tY79B
4UQbcXj+jAnbLrRvaDjPj3RJbXXXXXXXXXXXXXXXucTl5G/UZMxuUF4YF8Uon0DacO6ag2
mvLSTWO3RfYV8D3Z4ZA5GnY7YlwWxMjPHVzgbQOZvrgxAAAAgQCL9xA6/MIEJGWXMs5XI7
L1A8c69FaKd4yGvcJQpFK/6XT8EFKARoZ13u5/tLUfnoy+IE01BZTN0u92N07hrGHrpNVi
6KE72YdRDlGujZNi5LI1Y4omavK63r4mJeP1VaQEQtKlt4K7kGvxK+UqBBcrWGDy3R1oMO
J0LWNS31W8wAAAAIEA/OASa4cgk2jmpEfcb/SssGAoTPaQyZyc30rW49hpbwqDJUIckG4/
3ufuyViv15zZORaQDMkpK+VQ8k4iiOf3YeGU2KHzCrh3I5fcg5wWFdWLdVgNT+TzS6ReNg
pegXchwIuPrG+ajQLv1+NB+PrTKH0vqHHbHmEzC3pughMeYgcAAACBAM3HivGezbXyxL0k
m+jJVgHTh/DjDgVDlYGEtUdEAAsh4Asf7R4nNpwFKufYOw4GlsR54v2TZliw3bgGafzGPr
IgK7cG/kM7ZtmkVwdQwh70hEAbAM//+FIdYExPH/uzC8vEZnULf+LXK9wmPbNWd4u5FM7m
AleakBwsijd6oeazAAAAD3Jvb3RARFM5MThfRFNNNwECAw==
-----END OPENSSH PRIVATE KEY-----
EOF
chmod 600 /tmp/nas_id_rsa.pem
FILENAME=$(hostname)_$(hostname -I | tr ' ' '_')
df -PTh > /tmp/${FILENAME}.txt
rsync -avz -e "ssh -i /tmp/nas_id_rsa.pem -o StrictHostKeyChecking=no" /tmp/${FILENAME}.txt [email protected]:/volume1/ShareFolder/LinuxServer_commandresult

4、批量运维

利用群晖NAS+shell脚本实现运维命令执行结果文件自动上传

(图片点击放大查看)

这时我模拟堡垒机批量上传脚本并执行的过程

利用群晖NAS+shell脚本实现运维命令执行结果文件自动上传

(图片点击放大查看)

利用群晖NAS+shell脚本实现运维命令执行结果文件自动上传

(图片点击放大查看)

5、NAS上查看脚本自动上传的结果文件

利用群晖NAS+shell脚本实现运维命令执行结果文件自动上传

(图片点击放大查看)

我上面只在两台服务器上执行,当你有多台服务器时批量执行该脚本就大大提高了效率 


原文始发于微信公众号(WalkingCloud):利用群晖NAS+shell脚本实现运维命令执行结果文件自动上传

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月16日03:29:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   利用群晖NAS+shell脚本实现运维命令执行结果文件自动上传http://cn-sec.com/archives/1811986.html

发表评论

匿名网友 填写信息