在lunix服务器如何访问其他服务器从指定目录下载文件存放在自己服务器指定位置?
时间: 2023-08-24 17:07:24 浏览: 88
php在服务器执行exec命令失败的解决方法
在 Linux 服务器上,你可以使用 `scp` 命令从其他服务器下载文件并将其存储在自己的服务器上。下面是一个执行 `scp` 命令的示例:
```
scp user@remote_host:/path/to/remote/file /path/to/local/file
```
在这个示例中,`user` 是远程服务器的用户名,`remote_host` 是远程服务器的 IP 地址或主机名,`/path/to/remote/file` 是要下载的文件的路径,`/path/to/local/file` 是要将文件下载到的本地路径。
你可以在 Linux 服务器上使用 Java 的 `Runtime.getRuntime().exec()` 方法来执行该命令。以下是一个示例代码:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class FileDownload {
public static void main(String[] args) {
String remoteServer = "remote.server.com";
String remoteFilePath = "/path/to/remote/file";
String localFilePath = "/path/to/local/file";
String username = "username";
String command = "scp " + username + "@" + remoteServer + ":" + remoteFilePath + " " + localFilePath;
try {
Process process = Runtime.getRuntime().exec(command);
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
int exitCode = process.waitFor();
if (exitCode == 0) {
System.out.println("File downloaded successfully.");
} else {
System.out.println("File download failed.");
}
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
```
在这个示例中,我们使用了 `scp` 命令从远程服务器下载文件,并将其存储在本地服务器上。你需要替换示例中的 `remoteServer`、`remoteFilePath`、`localFilePath` 和 `username` 为你自己的值。你可以通过调用 `process.getInputStream()` 方法来获取命令执行的输出,通过调用 `process.waitFor()` 方法来等待命令执行完成并获取其退出码。
阅读全文