用于从多个服务器收集信息的Bash脚本
我只想问你一个小问题 我制作了一个小的shell脚本,它允许我连接到服务器,收集某些文件,并将它们压缩到另一台服务器上的另一个位置,效果很好 这是一种风向标:用于从多个服务器收集信息的Bash脚本,bash,shell,Bash,Shell,我只想问你一个小问题 我制作了一个小的shell脚本,它允许我连接到服务器,收集某些文件,并将它们压缩到另一台服务器上的另一个位置,效果很好 这是一种风向标: #!/bin/bash ssh -T user@server1 mkdir /tmp/logs cd /tmp/logs tar -czvf ./log1.tgz /somefolder/docs tar -czvf ./log2.tgz /somefolder/images tar -czvf ./log3.tgz /s
#!/bin/bash
ssh -T user@server1
mkdir /tmp/logs
cd /tmp/logs
tar -czvf ./log1.tgz /somefolder/docs
tar -czvf ./log2.tgz /somefolder/images
tar -czvf ./log3.tgz /somefolder/video
cd ..
-czvf logs_all.tgz /tmp/logs
我真正想做的是:
我在n00b和新手之间,所以请对我温柔
ssh
可以将命令作为参数在远程计算机上运行:
ssh -T user@server1 "tar -czf - /somefolder/anotherfolder"
ssh -T user@server1 "tar -czf - /somefolder/anotherfolder" > /path/on/local/machine/log1.tgz
这将在远程机器上执行tar
命令,将tar的输出写入stdout,stdout通过ssh
命令传递给本地机器。因此,您可以在本地的某个地方编写它(不需要在远程计算机上使用该/tmp/logs/
):
如果您只想在删除服务器上收集它们(不希望将它们传输到本地计算机),只需执行直接版本:
ssh -T user@server1 "mkdir /tmp/logs/"
ssh -T user@server1 "tar -cvzf /tmp/logs/log1.tgz /somefolder/anotherfolder"
ssh -T user@server1 "tar -cvzf /tmp/logs/log2.tgz /somefolder/anotherfolder"
…
ssh -T user@server1 "tar -czvf /tmp/logs_all.tgz /tmp/logs"
ssh
可以将命令作为参数在远程计算机上运行:
ssh -T user@server1 "tar -czf - /somefolder/anotherfolder"
ssh -T user@server1 "tar -czf - /somefolder/anotherfolder" > /path/on/local/machine/log1.tgz
这将在远程机器上执行tar
命令,将tar的输出写入stdout,stdout通过ssh
命令传递给本地机器。因此,您可以在本地的某个地方编写它(不需要在远程计算机上使用该/tmp/logs/
):
如果您只想在删除服务器上收集它们(不希望将它们传输到本地计算机),只需执行直接版本:
ssh -T user@server1 "mkdir /tmp/logs/"
ssh -T user@server1 "tar -cvzf /tmp/logs/log1.tgz /somefolder/anotherfolder"
ssh -T user@server1 "tar -cvzf /tmp/logs/log2.tgz /somefolder/anotherfolder"
…
ssh -T user@server1 "tar -czvf /tmp/logs_all.tgz /tmp/logs"
您可以发送一个tar命令,将压缩的归档文件写入标准输出并在本地保存:
ssh user@server1 'tar -C /somefolder -czvf - anotherfolder' > server1.tgz
ssh user@server2 'tar -C /somefolder -czvf - anotherfolder' > server2.tgz
...
您可以发送一个tar命令,将压缩的归档文件写入标准输出并在本地保存:
ssh user@server1 'tar -C /somefolder -czvf - anotherfolder' > server1.tgz
ssh user@server2 'tar -C /somefolder -czvf - anotherfolder' > server2.tgz
...
使用这样的根密码登录将是一个巨大的安全漏洞。。。我不建议将它作为root用户用于SSH-in,也不建议通过sript将SSH-in作为正常使用并自动进入root,因为您必须将它存储在可读的位置并将其传递给您的登录名。也许可以尝试使用Ansible或其他可以以加密格式存储sudo密码或用户密码并指定作为哪个用户运行命令的东西。使用这样的根密码登录将是一个巨大的安全漏洞。。。我不建议将它作为root用户用于SSH-in,也不建议通过sript将SSH-in作为正常使用并自动进入root,因为您必须将它存储在可读的位置并将其传递给您的登录名。也许可以尝试使用Ansible或其他可以以加密格式存储sudo密码或用户密码并指定作为哪个用户运行命令的东西。