java在远程linux服务器中切换目录和新建目录,把本地文件上传到新建的目录中

来源:互联网 发布:发货后淘宝店铺不存在 编辑:程序博客网 时间:2024/06/10 12:27
//java在远程linux服务器中切换目录和新建目录,把本地文件上传到刚才新建的目录中//ganymed-ssh2-build210.jar需要下载package com.company;import ch.ethz.ssh2.*;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;public class Main {    //#开发环境    //#数据服务器的ip地址    private static String dataServerIp = "192.168.100.100";    // #数据服务器的用户名    private static String dataServerUsername = "root";    //#数据服务器的密码    private static String dataServerPassword = "abc";    //#数据服务器的目的文件夹    private static String dataServerDestDir = "/export/uploadDir/";    private static String localDir = "D:\\上传文件的临时目录\\";    public static void main(String[] args) {        //文件scp到数据服务器        Connection conn = new Connection(dataServerIp);        SFTPv3Client sftpClient = null;        Session session = null;        System.out.println("开始scp文件");        try {            conn.connect();            boolean isAuthenticated = conn.authenticateWithPassword(dataServerUsername, dataServerPassword);            if (isAuthenticated == false)                throw new IOException("Authentication failed.文件scp到数据服务器时发生异常");//            sftpClient = new SFTPv3Client(conn);//            在root的目录~下创建文件夹,无法切换目录//            sftpClient.mkdir("10092", 0755); //成功,远程新建目录 ,第二个参数是创建的文件夹的读写权限,0755->即用户具有读/写/执行权限,组用户和其它用户具有读写权限;//            sftpClient.mkdir("/10092/input",0755);//失败//            sftpClient.mkdir(dataServerDestDir+"10092/input",0755);//失败//            sftpClient.rmdir("oldRemoteDir"); //远程删除目录//            sftpClient.rm("file");//远程删除文件            //执行远程命令,成功            session = conn.openSession();            session.execCommand("cd "+dataServerDestDir+" ; mkdir 10092 ; cd 10092 ; mkdir input ;mkdir output ");//分号隔开执行多条指令            //显示执行命令后的信息            InputStream stdout = new StreamGobbler(session.getStdout());            BufferedReader br = new BufferedReader(new InputStreamReader(stdout));            while (true) {                String line = br.readLine();                if (line == null) {                    System.out.println("session,远程服务器返回信息:空");                    break;                }                System.out.println("session,远程服务器返回信息:" + line);            }            //获得退出状态            System.out.println("session,ExitCode: " + session.getExitStatus());//返回0 表示命令执行成功;返回1 表示执行失败            session.close();            //远程文件复制到本地成功            SCPClient client = new SCPClient(conn);            client.put(localDir+"10092.zip", dataServerDestDir+"10092/input");//成功,把本地的10092.zip上传到/10092/input/目录中//            client.get(dataServerDestDir + "10092/input/10092.zip", localDir); //成功,远程scp到本地        } catch (IOException e) {            e.printStackTrace();            System.out.println("文件scp到数据服务器时发生异常");            if (conn != null) {                conn.close();            }            if (sftpClient != null) {                sftpClient.close();            }            if (session != null) {                session.close();            }        } finally {            if (conn != null) {                conn.close();            }            if (sftpClient != null) {                sftpClient.close();            }            if (session != null) {                session.close();            }        }        System.out.println("scp文件结束");    }//main}
以上,亲测可用
参考: http://blog.sina.com.cn/s/blog_68fec59801015f5n.html  
阅读全文
1 0
原创粉丝点击