时间:2021-05-20
有时候你可能需要通过代码来控制执行linux命令实现某些功能。
针对这类问题可以使用JSCH来实现,具体代码如下:
public class CogradientImgFileManager{private static final Logger log = LoggerFactory.getLogger(CogradientImgFileManager.class);private static ChannelExec channelExec;private static Session session = null;private static int timeout = 60000; // 测试代码public static void main(String[] args){try{versouSshUtil("10.8.12.189","jmuser","root1234",22);runCmd("java -version","UTF-8");}catch (Exception e){// TODO Auto-generated catch blocke.printStackTrace();}}/*** 连接远程服务器* @param host ip地址* @param userName 登录名* @param password 密码* @param port 端口* @throws Exception*/public static void versouSshUtil(String host,String userName,String password,int port) throws Exception{log.info("尝试连接到....host:" + host + ",username:" + userName + ",password:" + password + ",port:"+ port);JSch jsch = new JSch(); // 创建JSch对象session = jsch.getSession(userName, host, port); // 根据用户名,主机ip,端口获取一个Session对象session.setPassword(password); // 设置密码Properties config = new Properties();config.put("StrictHostKeyChecking", "no");session.setConfig(config); // 为Session对象设置propertiessession.setTimeout(timeout); // 设置timeout时间session.connect(); // 通过Session建立链接}/*** 在远程服务器上执行命令* @param cmd 要执行的命令字符串* @param charset 编码* @throws Exception*/public static void runCmd(String cmd,String charset) throws Exception{channelExec = (ChannelExec) session.openChannel("exec");channelExec.setCommand(cmd);channelExec.setInputStream(null);channelExec.setErrStream(System.err);channelExec.connect();InputStream in = channelExec.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(in, Charset.forName(charset)));String buf = null;while ((buf = reader.readLine()) != null){System.out.println(buf);}reader.close();channelExec.disconnect();}}声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
java通过ssh连接服务器执行shell命令详解java通过ssh连接服务器执行shell命令:JSch是SSH2的一个纯Java实现。它允许你连接到一个ss
远程连接Linux云服务器-命令行模式1、远程连接工具。目前Linux远程连接工具有很多种,您可以选择顺手的工具使用。下面使用的是名为Putty的Linux远程
paramiko是python的SSH库,可用来连接远程linux主机,然后执行linux命令或者通过SFTP传输文件。关于使用paramiko执行远程主机命令
前言paramiko模块是基于Python实现的SSH远程安全连接,可以提供在远程服务器上执行命令、上传文件到服务器或者从指定服务器下载文件的功能。parami
场景需要通过xshell工具,通过ssh连接ubuntu服务器。默认端口22。结果常规连接命令行连接//直接通过命令连接ssh远程机器名@192.168.67.