我只有一点问题。
我制作了一个小shell脚本,允许我连接到服务器并收集某些文件并将它们压缩到另一台服务器上的另一个位置,这样可以正常工作。
这是风向标:
NullPointerException
我真正想做的是:
此外,它不是必不可少的,但是,如果我可以显示进度(也许是一个栏),那就太酷!!
如果有人能提供帮助那就太棒了。
我在n00b和新手之间所以请温柔地对待我!!
答案 0 :(得分:1)
ssh
可以将命令作为参数在远程计算机上运行:
ssh -T user@server1 "tar -czf - /somefolder/anotherfolder"
这将在远程机器上执行tar
命令,将tar的输出写入stdout,该命令由ssh
命令传递给本地机器。所以你可以在某处本地编写它(远程机器上不需要/tmp/logs/
):
ssh -T user@server1 "tar -czf - /somefolder/anotherfolder" > /path/on/local/machine/log1.tgz
如果您只想在删除服务器上收集它们(不希望将它们传输到本地计算机),只需执行直接版本:
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"
答案 1 :(得分:1)
您可以发送一个tar命令,将压缩存档写入标准输出并将其保存在本地:
ssh user@server1 'tar -C /somefolder -czvf - anotherfolder' > server1.tgz
ssh user@server2 'tar -C /somefolder -czvf - anotherfolder' > server2.tgz
...