Ganymed SSH-2 for Java系列8之scpPut
/**
*
* Put local file to remote machine.
*
* @param host
*
* @param username
*
* @param password
*
* @param localFile
*
* @param remoteDir
*
* @throws IOException
*/
public static void scpPut(String host, String username, String password,
String localFile, String remoteDir, String permissions_code, int port)
throws IOException {
if (logger.isInfoEnabled()) {
logger.info("scp [" + localFile + "] to " + host + remoteDir);
}
Connection conn = null;
try {
conn = getOpenedConnection(host, username, password, port);
SCPClient client = new SCPClient(conn);
client.put(localFile, remoteDir, permissions_code);
} finally {
if (null != conn) {
conn.close();
}
}
}
各个参数说明:
String host 服务器ip
String username 用户名
String password, 密码
String localFile,本地文件
String remoteDir, 远程目录
String permissions_code,权限码
int port ssh端口
示例:
String remoteDir = "/usr/local";
String localFile ="src/test.log";
try {
CommandRunner.scpPut("172.16.18.141", "root",
"123456", localFile, remoteDir,"0060", 22);
} catch (IOException e) {
e.printStackTrace();
}
说明:
这个操作是将本地的test.log上传到远程目录:usr local目录下面,如果重复上传同一个文件,会覆盖掉上一个文件,
如果第一次赋予的 权限码是0060 ,对同一个文件上传,第二次赋予的权限码是0600,那么其权限不会被改变,
但是文件会被第二次上传的文件覆盖掉。