2016-08-14 188 views
-1

我很难创建一个脚本,获取子文件夹里面的文件夹,并打开与其他服务器的SSH连接,执行axel命令从文件夹下载每个文件,并在作业完成时擦除文件夹和文件。Shell脚本打开SSH连接执行命令

一旦这个服务器和文件夹在互联网上打开,我假装使用Axel加速文件下载。

任何人都可以帮到我吗?

感谢名单

+1

欢迎来到Stack Overflow。请参阅[如何提问](http://stackoverflow.com/help/how-to-ask)和[如何创建最小,完整和可验证的示例](http://stackoverflow.com/help/mcve )。 – pah

+1

请完全描述**你遇到什么问题。这不是一个“为你写代码”的服务;相反,我们正在努力通过规范的答案建立一个紧密聚焦的问题的数据库;这个广泛的问题可以分解成许多更小的问题,并且很可能很多(如果不是大多数)这些问题已经在这里提出并回答了。 –

回答

0

下面是脚本使用ssh

#!/usr/bin/expect -f 

spawn ssh [email protected]$host bash script_to_run_on_server "$directory_path" 
sleep 2 
expect "password:" { 
    send "${$password}\r" 
} 
interact 

在上面的脚本中,主机,用户名,密码,目录路径的变量,你可以根据你的价值观取代连接到远程服务器。

您的逻辑'execute an axel command to download each file from the folder, and erase the folder and the files when the job is done'显示写在script_to_run_on_server

注意:请确保目录已经读取,写入超出服务器环境。

+2

如果你必须*鼓励人们在编程使用期间传递明文密码,为什么不建议'sshpass'而不是用'expect'重新发明轮子? –

+0

...说,我没有看到任何需要明文密码(比如说,RSA密钥)的问题。 –

+0

@ CharlesDuffy-我不知道sshpass。我将通过它的手册页 –