大家好,我是死脑筋的资深菜鸟工程师,又来麻烦大家提供意见及想法。

目前「管理」的 Linux (Redhat 家族的) 主机数有约 170 台,想要将一些动作自动化及格式后,下载回来稍稍加工就可以使用,以省去每台登入并操作指令的机器人行为。

目前主机上的 Script 分成产制分割区使用状况及安装套件的版本两部份,然后再配合 WinSCP 的 CMD 模式加上 Script 去下载,只是这个行为会触发告警的通报,然后若是没有适时的更新资讯,有可能会有遗漏,所以在想每台主机在产生档案后,全部集中上传到某台主机上,而若是我的 Script 若是有更新,也可以放到该主机上,让各主机自行下载回去。

看了 scp 、 sftp 跟 rsync , rsync 利用模组的方式可以很容易的指定使用者及密码,以及上传设定 (上传产生出的档案),但是想不出来要如何将档案下载下来 (新 Script),若是使用非模组方式,则都会有输入密码的问题,找了些文章,没有找到可以轻易处理这部份的内容。想来请教这个需求,除了我提到的方式外,还有没有别的我不知道的方法?因为 GCB 的关系,所以利用 Key 的方式来「免输密码登入」应该是不可行。

谢谢大家!

6 个回答

  • 旧至新
  • 新至旧
  • 最高Like数

2

㊣浩瀚星空㊣

iT邦大神 1 级 ‧ 2024-10-08 12:50:22

一般像是共用的程式类,我会建议以下方式来处理

  1. GIT控制。
  2. S3第三方储存体。
  3. SMB开云端硬碟。

其它的还有如下方式

  1. 配合WEB SERVER的情况下
    1.wget 下载指令请求
    2.curl 下载请求
    2.配合 FTP、SFTP的方式
    1.指令登入下载处理

即于资料同步,GIT方式就不建议了。但SMB或S3的部份还是可以使用。


  • 1

canchang

iT邦新手 3 级 ‧
2024-10-14 14:54:05

这个感觉好複杂、好庞大,小小的工作应该用不到。
谢谢。

修改

0

MatthewWangUS

iT邦新手 2 级 ‧ 2024-10-08 16:06:59

各主机资料写到某台DB?


  • 1

canchang

iT邦新手 3 级 ‧
2024-10-14 14:55:03

我只想只会写简单的 Script ,还没有跟 DB 打过交道。
谢谢。

修改

0

rin0913

iT邦新手 5 级 ‧ 2024-10-08 19:20:09

这种批量管理工作一律推荐 Ansible。


  • 1

canchang

iT邦新手 3 级 ‧
2024-10-14 14:57:43

Ansible 应该是我下一个课题,想要拿这个来套用 GCB ,不知道会不会很难呀?我是那种「万事起头难」的人,有几个範例可以参考 (抄、修改) ,可能会容易入门一些。
目前的这项工作,应该还用不上。
谢谢回覆。

修改

1

该死的唉踢~

iT邦新手 4 级 ‧ 2024-10-09 11:36:32

如果我没有会错意,
或许所有机器都 mount 同一个 nfs 目录,script 也放在这个目录下,
产出的report 也都写进这个目录放,就不用 scp / rsync 了,
这样能避免用 Winscp 触发告警的问题?


  • 1

canchang

iT邦新手 3 级 ‧
2024-10-14 14:59:10

这边网路管很严,NFS 的申请应该不会被通过。
谢谢回覆。

修改

0

chuway

iT邦新手 2 级 ‧ 2024-10-09 13:45:42

可以使用expect指令,可以模拟键盘输入
cat test.exp
#!/usr/local/bin/expect
spawn telnet 10.1.0.X
expect Username:
send "admin\\n"
expect Password:
send "1234\\n"
expect "admin#"
send "ls\\n"
expect "admin#"
send "exit\\n"

改一下telnet 变成 ftp /ssh....都能跑
170台如果架构差不多,改一下IP即可,如要每台要装NTS/Samba/Web会死人

我这有20几台各式L2交换器,要定期或立即抓各台各埠资料,就是者么做
把萤幕抓回来,再慢慢用regex分析分类入档


  • 1

froce

iT邦大师 1 级 ‧
2024-10-09 15:05:32

Ansible就是在做这个的...

修改

0

nihs903222

iT邦新手 5 级 ‧ 2024-10-09 19:52:17

前阵子脚本从ftp转sftp也有遇到没办法带user password的问题
发现一个套件可以完美解决:lftp (走sftp还是要连过一次产生指纹)
刚好redhat系列的repo应该就有
以下範例, 不清楚就看man page吧

lftp -u $user,$password sftp://$ip <<EOF

lcd $dir_local
cd $dir_remote
put $file_local
get $file_remote
bye

EOF

  • 1

canchang

iT邦新手 3 级 ‧
2024-10-14 14:52:35

感谢!sshpass 好像也能达到此一功能,再想想,再想想。

修改