zoukankan      html  css  js  c++  java
  • Java中com.jcraft.jsch.ChannelSftp讲解

    http://blog.csdn.net/allen_zhao_2012/article/details/7941631

    http://www.cnblogs.com/longyg/archive/2012/06/25/2556576.html

    http://xpenxpen.iteye.com/blog/2061869

    http://blog.csdn.net/fyqcdbdx/article/details/23863793

    http://blog.csdn.net/u013256816/article/details/52701563?utm_source=gold_browser_extension

    SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。SFTP 为 SSH的一部份,是一种传输文件到服务器的安全方式。SFTP是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。

    ChannelSftp类是JSch实现SFTP核心类,它包含了所有SFTP的方法,如:
    put():      文件上传
    get():      文件下载
    cd():       进入指定目录
    ls():       得到指定目录下的文件列表
    rename():   重命名指定文件或目录
    rm():       删除指定文件
    mkdir():    创建目录
    rmdir():    删除目录
    等等(这里省略了方法的参数,put和get都有多个重载方法,具体请看源代码,这里不一一列出。)

    一个简单的jsch链接Linux并执行命令的utils。

    1. import java.io.BufferedReader;  
    2. import java.io.IOException;  
    3. import java.io.InputStream;  
    4. import java.io.InputStreamReader;  
    5.   
    6. import com.jcraft.jsch.Channel;  
    7. import com.jcraft.jsch.ChannelExec;  
    8. import com.jcraft.jsch.JSch;  
    9. import com.jcraft.jsch.JSchException;  
    10. import com.jcraft.jsch.Session;  
    11.   
    12.   
    13.   
    14. public class ShellUtils {  
    15.     private static JSch jsch;  
    16.     private static Session session;  
    17.   
    18.       
    19.     /** 
    20.      * 连接到指定的IP 
    21.      *  
    22.      * @throws JSchException 
    23.      */  
    24.     public static void connect(String user, String passwd, String host) throws JSchException {  
    25.         jsch = new JSch();  
    26.         session = jsch.getSession(user, host, 22);  
    27.         session.setPassword(passwd);  
    28.           
    29.         java.util.Properties config = new java.util.Properties();  
    30.         config.put("StrictHostKeyChecking", "no");  
    31.         session.setConfig(config);  
    32.           
    33.         session.connect();  
    34.     }  
    35.   
    36.     /** 
    37.      * 执行相关的命令 
    38.      * @throws JSchException  
    39.      */  
    40.     public static void execCmd(String command, String user, String passwd, String host) throws JSchException {  
    41.         connect(user, passwd, host);  
    42.           
    43.         BufferedReader reader = null;  
    44.         Channel channel = null;  
    45.   
    46.         try {  
    47.             while (command != null) {  
    48.                 channel = session.openChannel("exec");  
    49.                 ((ChannelExec) channel).setCommand(command);  
    50.                   
    51.                 channel.setInputStream(null);  
    52.                 ((ChannelExec) channel).setErrStream(System.err);  
    53.   
    54.                 channel.connect();  
    55.                 InputStream in = channel.getInputStream();  
    56.                 reader = new BufferedReader(new InputStreamReader(in));  
    57.                 String buf = null;  
    58.                 while ((buf = reader.readLine()) != null) {  
    59.                     System.out.println(buf);  
    60.                 }  
    61.             }  
    62.         } catch (IOException e) {  
    63.             e.printStackTrace();  
    64.         } catch (JSchException e) {  
    65.             e.printStackTrace();  
    66.         } finally {  
    67.             try {  
    68.                 reader.close();  
    69.             } catch (IOException e) {  
    70.                 e.printStackTrace();  
    71.             }  
    72.             channel.disconnect();  
    73.             session.disconnect();  
    74.         }  
    75.     }  
    76.      
    77. }  
  • 相关阅读:
    设置装订线
    设置页边距
    查看压缩文件的信息
    格式化3
    格式化2
    条件格式化1
    单独设置奇偶页的页眉页脚
    方法重写注意点
    super注意点
    稀疏数组的压缩和还原
  • 原文地址:https://www.cnblogs.com/weiyi1314/p/9517245.html
Copyright © 2011-2022 走看看