精华内容
下载资源
问答
  • Java代码实现执行Linux服务器命令

    千次阅读 2018-10-24 10:51:10
    通过jsch可以实现基于sftp协议的文件传输,使用的是ChannelSftp类,如果要在程序中实现启动服务器的一个脚本,执行某个系统命令的话,就需要用到另一个channel类了,就是ChannelExec类。  如果项目采用maven构建的...

    通过jsch可以实现基于sftp协议的文件传输,使用的是ChannelSftp类,如果要在程序中实现启动服务器的一个脚本,执行某个系统命令的话,就需要用到另一个channel类了,就是ChannelExec类。

            如果项目采用maven构建的话,引入

    <dependency>
          <groupId>com.jcraft</groupId>
          <artifactId>jsch</artifactId>
          <version>0.1.50</version>
    </dependency>

    代码示例:

    package com.lipl;

    import com.jcraft.jsch.*;

    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.Properties;

    /**
     * @author lipenglong
     * @ClassName:
     * @Description: this is a class desc.
     * @date 14-4-1 上午10:44
     */
    public class JschCommand {
        private Session session = null;
        private Channel channel = null;

        private String sftpHost = "localhost";
        private int sftpPort = 22;
        private String sftpUserName = "petric";
        private String sftpPassword = "123";
        private int timeout = 30000;

        /**
         * 获取连接
         * @return
         */
        private ChannelExec getChannelExec() {
            try {
                if (channel != null && channel.isConnected()) {
                    return (ChannelExec) channel;
                }
                JSch jSch = new JSch();
                if (session == null || !session.isConnected()) {
                    session = jSch.getSession(sftpUserName, sftpHost, sftpPort);
                    session.setPassword(sftpPassword);
                    Properties config = new Properties();
                    config.put("StrictHostKeyChecking", "no");
                    session.setConfig(config);
                    session.setTimeout(timeout);
                    session.connect();
                }
                channel = session.openChannel("exec");
            } catch (Exception e) {
                if (session != null) {
                    session.disconnect();
                    session = null;
                }
                channel = null;
            }
            return channel == null ? null : (ChannelExec) channel;
        }

        /**
         * 关闭连接
         */
        private void closeChannel() {
            try {
                if (channel != null) {
                    channel.disconnect();
                    channel = null;
                }
                if (session != null) {
                    session.disconnect();
                    session = null;
                }
            } catch (Exception e) {
                System.out.println(e);
            }
        }

        /**
         * 执行服务器端命令
         */
        public boolean executeCommand(String command) {
            boolean flag = false;
            ChannelExec channelExec = getChannelExec();
            if (channelExec == null) {
                return false;
            }
            try {
                channelExec.setInputStream(null);
                channelExec.setErrStream(System.err);
                channelExec.setCommand(command);

                InputStream in = channelExec.getInputStream();
                channelExec.connect();

                BufferedReader reader = new BufferedReader(new InputStreamReader(in, "utf-8"));
                String line = null;
                while ((line = reader.readLine()) != null) {
                    System.out.println(line);
                }

                reader.close();
                closeChannel();

                flag = true;
            } catch (Exception e) {
                System.out.println(e);
                flag = false;
            }
            return flag;
        }

        public static void main(String[] args) {
            JschCommand jschCommand = new JschCommand();
            System.out.println(jschCommand.executeCommand("date"));
            System.out.println("----------------------------------");
            System.out.println(jschCommand.executeCommand("ruby Demo.rb"));
            System.out.println("----------------------------------");
            System.out.println(jschCommand.executeCommand("touch abc.txt"));
            System.out.println("----------------------------------");
            System.out.println(jschCommand.executeCommand("rm abc.txt"));
        }
    }
    通过ChannelExec类可以实现执行服务器命令,如date, touch, rm等,可以执行服务器上我们写好的某个脚本,如Demo.rb。

    展开全文
  • java通过代码登录远程linux服务器并执行linux命令源码以及jar包
  • linux 服务器执行命令异常慢

    千次阅读 2020-10-16 17:10:42
    本文章,是针对于服务器执行命令异常慢,且开放的服务不能正常提供功能 并不是 针对于服务器中,java项目启动异常慢,这个问题,在我的其他文章里面有描述 # 情景 昨天上服务器的时候,登录都特别的慢,而且前端...
    # 注意
    本文章,是针对于服务器执行命令异常慢,且开放的服务不能正常提供功能
    并不是
    针对于服务器中,java项目启动异常慢,这个问题,在我的其他文章里面有描述
    
    
    # 情景
    昨天上服务器的时候,登录都特别的慢,而且前端反映gitlab提交不了代码,显示502
    等我登录服务器之后,竟然执行ls命令,都要等一会,简直不能忍,按照之前一般重装了
    这么多代码,重新搞,很费时,而且好不容易遇到这个问题,绝不能放过
    
    
    # 场景复现
    1. 先使用w命令,查看系统负载 (如下图所示)

    2. 同样也可以使用uptime查看系统平均负载 (如下图所示)
       注: 这里的数值偏小,是由于本文是解决问题之后做的记录,当时没有截图
           具体的数字,大致和通过w命令运行的结果相差无几

    3. 当时查看内存也是充足的 (如下图所示)

    3.1 可见此时内存buff/cache区域数值较大,我们可以处理下
        这个地方,可能会造成gitlab的502问题
    
        执行命令:sync && echo 3 > /proc/sys/vm/drop_caches
        效果如下图所示

    4. 查看系统总体的上下文切换情况 (cs(context switch)是每秒上下文切换的次数)

    5. 查找R或D状态的进程
       注:R: 可运行状态(Running或Runnable)
    
          D: 不可中断状态(Uninterruptible Sleep,也称为 Disk Sleep)
    
    这里多说一些,我这边主要是由于项目当中设置了定时任务,每秒将日志文件同步到指定目录
    所以,执行当前命令后,出现了一堆任务,导致CPU频繁的切换上下文去执行,大量的进程堆积
    
    命令如下:ps aux | awk '{if($8 ~ /R|D/) print $0 }'

    6. 显示当前服务器所有运行中的进程 (可参考命令)
       ps aux | less
    7. 其他命令
    
    7.1. 查看占用CPU资源最多的10个进程
    ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
    
    7.2. 占用内存资源最多的10个进程
    ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head
    
    7.3. 查看硬盘大小
    df -h
    
    7.4. 常用查看命令
    top
    
    7.5 查看当前服务器开放的进程端口
    netstat -nutlp
    8. 小结
    上面的命令,主要是查看当前系统的异常值,以及异常进程
    
    主要思想就是,查看当前服务器的磁盘,内存,CPU,负载等情况
    
    影响的可能是:定时任务,代码因素等
    
    最直接的办法还是杀进程,不过可以根据杀的进程,进一步的追踪,
    
    到底是什么因素影响的
    
    我这个是由于我每秒钟执行一次同步的定时任务堆积导致的
    
    总之一句话,不要老想着装系统,不过重启服务器也是常规的解决方法
    我这种是重启服务器都不好使的,所有问题,又因必有果,一定有方法可以解决

     

    展开全文
  • linux服务器重启命令

    千次阅读 2021-01-13 11:21:32
    linux中常用的关机/重启命令有shutdown、reboot、init、halt和poweroff。它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的,下面本篇文章就来给大家分别介绍一下这些命令,希望对大家有所帮助。...

    linux中常用的关机/重启命令有shutdown、reboot、init、halt和poweroff。它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的,下面本篇文章就来给大家分别介绍一下这些命令,希望对大家有所帮助。【视频教程推荐:linux教程


    1、shutdown命令

    shutdown命令是最常用也是最安全的关机和重启命令,它会在关机之前调用fsck检查磁盘,其中-h和-r是最常用的参数:

     ● -h:停止系统服务并关机

     ● -r: 停止系统服务后重启

    示例:

    shutdown -h now  --立即关机 
    
    shutdown -h 10:53  --到10:53关机,如果该时间小于当前时间,则到隔天 
    
    shutdown -h +10  --10分钟后自动关机 
    
    shutdown -r now  --立即重启 
    
    shutdown -r +30 'The System Will Reboot in 30 Mins'   --30分钟后重启并并发送通知给其它在线用户


    2、reboot命令

    reboot表示立即重启,效果等同于shutdown -r now

    3、init命令

    init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的 用户进程﹑守护进程等。shutdown 就是使用这种机制。init定义了8个运行级别(runlevel), init 0为关机﹐init 1为重启。

    4、halt命令

    halt命令是最简单的关机命令,其实就是调用shutdown -h。halt执行时﹐不理会目前系统状况下,进行硬件关机;杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。

    5、poweroff命令

    poweroff表示立即关机,效果等同于shutdown -h now,在多用户模式下(Run Level 3)不建议使用。

    转自:linux服务器重启命令是什么-linux运维-PHP中文网

     

    展开全文
  • linux 服务器常用命令整理

    千次阅读 2018-03-09 11:25:58
    linux 服务器常用命令整理目录网络分析 - tcpdump \ telnet \ (netstat \ ss \ lsof) \ nload网络传输 - scp \ rsync \ (rz \ sz) \ nc抓包工具 - charles内存检查 - free \ meminfo系统监控 - vmstat \ iostat \ ...

    linux 服务器常用命令整理

    目录

    • 网络分析 - tcpdump \ telnet \ (netstat \ ss \ lsof) \ nload

    • 网络传输 - scp \ rsync \ (rz \ sz) \ nc

    • 抓包工具 - charles

    • 内存检查 - free \ meminfo

    • 系统监控 - vmstat \ iostat \ top \ ps \ sar \ dstat

    • 系统调用追踪 - strace \ gcore

    • 文件相关 - find \ awk \ sed \ grep \ tail \ df \ du \ locate

    • 开发效率 - tmux

    网络分析

    tcpdump

    1. tcp:用来过滤数据报的类型

    2. -i eth1 : 只抓经过接口eth1的包

    3. -t : 不显示时间戳

    4. -s 0 : 抓取数据包时默认抓取长度为68字节, 加上-S 0 后可以抓到完整的数据包

    5. -c 100 : 只抓取100个数据包

    6. dst port !22: 不抓取目标端口是22数据包

    7. src net 10.99.184.0/24 : 数据包的源网络地址为10.99.184.0/24

    8. -A:显示数据包内容

    示例:

    tcpdump -i any -v port 8888

    tcpdump -i any -A port 8888

    netstat

    查看所有连接

    netstat -autnp

    查看监听的tcp服务

    netstat -altnp

    看tcp端口

    netstat -ltnp

    ss

    • ss -pl 查看每个进程及其监听的端口

    • ss -t -a 查看所有的tcp连接

    • ss -u -a 查看所有的udp连接

    lsof

    • lsof -i :8888 查看端口8888进程信息

    • lsof -p 7915 查看进程7915打开的fd信息

    scp

    • scp -r src remote:/tmp 本地拷贝到远端

    • scp -r remote:/tmp/src . 远端拷贝到本地

    • scp -3 remote:/tmp/a.tar remote2:/tmp/ 以本地为跳板机,将remote机器上文件拷贝到remote2

    rsync

    • rsync -av /home/mail/ 192.168.11.12:/home/mail/

    • rsync -av 192.168.11.11:/home/mail/ /home/mail/

    nc

    • nc -l 8888 本地启动8888端口

    • nc -l 8888 > a.tgz 接收文件

    • nc ali-.bj:8888 < a.tgz 发送文件到远端

    vmstat

    • vmstat 1 10对内存监控,重点关注swpd、free、si、so。一般系统不繁忙的状态下,swpd、so的值不会持续很高,经常为0。如果swpd过高,那么就是系统内存经常不够用。

    • 对CPU监控,我们可以查看r(运行进程数)、us、sy、id(CPU空闲),如果r的数字大于系统CPU个数,则面临CPU不够用的危险,通过id分析,如果过小,则可以判断是CPU不足。

    iostat

    • iostat -x 一般情况下,%util应该越小越好,10%以下正常,30%IO比较繁忙。50%以上一般是有问题的

    top

    • 1 按CPU核数查看

    • P

    • M

    • c 查看完整进程命令

    • top -Hp pid 查看线程数

    ps

    • ps -eo “pid,cmd,lstart” | grep pid 查看进程启动时间

    • ps -ef f 查看最近进程(常用)

    find

    • find . -type f -mtime +3 修改时间大于3天的文件

    • find . -type f -mtime +3 | xargs rm -rf 查找并删除

    du

    • du -sk * | sort -n | cut -f2 | xargs -d '\n' du -sh 按文件大小排序显示

    • du -hs 常用

    awk

    grep 'update_profile.*Android' access-20180131.log |awk -F 'POST' '{print $2}'|awk -F '&' '{print $26}'|awk -F ' ' '{print $1}'|awk -F '=' '{print $2}'|sort -n|uniq -c|sort -nr|head -100

    -F ' '以空格分割

    ab

    ab -c 200 -n 1000 -T 'application/x-www-form-urlencoded' -p postdata.txt http://domain/test.php

    展开全文
  • linux 重启服务器命令

    万次阅读 2018-09-20 20:51:09
    Linux有如下的关机和重启命令:shutdown, reboot, halt, poweroff,那么它们有什么区别呢? shutdown - 建议使用的命令 shutdown是最常用也是最安全的关机和重启命令,它会在关机之前调用fsck检查磁盘,其中-h和-r...
  • Linux本地登录另一台Linux服务器命令

    千次阅读 2017-11-12 20:03:00
    要从Linux下通过SSH登录另一台Linux服务器非常容易--前提是在远 程服务器上拥有一个用户账号。打开Shell终端,执行以下命令 ssh -l login_name hostname 把login_name替换成真实的用户账号,把hostname替换成服务器...
  • linux文件复制到另一个linux服务器命令 将data文件拷贝到192.25.26.184服务器中opt文件夹下 scp -r data root@ip:/opt/data/sj/ 例如:scp -r data root@192.25.26.184:/opt/ -r 是文件夹下的所有文件,root是用户...
  • linux服务器关闭、重启相关命令

    千次阅读 2019-07-02 10:28:32
    业务调整,及其关闭 init x 0:停机或者关机(千万不能将initdefault设置为0) 1:单用户模式,只root用户进行维护 2:多用户模式,不能使用NFS(Net File System) 3:完全多用户模式(标准的运行级别) ......
  • Linux服务器重启命令大全

    万次阅读 2018-09-29 10:39:06
    一、Linux 的五个重启命令  1、shutdown  2、poweroff  3、init  4、reboot  5、halt  二、五个重启命令的具体说明  shutdown  reboot  在linux下一些常用的关机/重启命令有shutdown、halt、...
  • linux启动服务器命令

    千次阅读 2015-05-15 09:21:12
    linux启动服务器命令
  • Linux服务器时间设置命令

    千次阅读 2019-06-13 04:18:17
    可能有些朋友的服务器都没有设置过定时任务来同步时间吧,建议大家添加个定时同步,避免服务器时间与用户系统时间差别太大 转载于:https://my.oschina.net/zhouz/blog/213195
  • linux 重启服务器命令大全

    千次阅读 2017-07-27 11:23:31
    Linux关机和重启服务器命令详解  1.shutdown -r now 2.reboot 3.startx 重启的3中方法 在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都可以达到重启系统的目的,但每...
  • Xshell5中常用linux服务器命令集合

    万次阅读 2016-07-08 14:40:28
    选择服务器后,输入 [manager@iZ23iceqiuzZ ~]$ sudo su - [root@iZ23iceqiuzZ ~]# ls -l sudo执行步骤: 1、检查用户是否在/etc/sudoers的列表中; 2、如果在,以root权限执行命令; 3、取消用户的root。 ...
  • Linux常用命令以及服务器常用操作

    千次阅读 2018-02-28 08:49:41
    Linux常用命令大全 Linux常用命令大全 更新服务器资源文件并重启 /**1.切换到bin文件夹下**/ cd bin /**2.关闭tomcat服务**/ ./shutdown.sh /* 3.更新服务器资源文件 */ /**4.启动tomcat服务**/ ./startup....
  • pscp命令将本地文件上传至linux服务器 了解pscp: pscp是putty安装包所带的远程文件传输工具,使用和Linux下scp命令相似,具体的使用方法如下: PSCP和SCP功能相同,在windows下使用,只有一个文件,建议将pscp.exe放...
  • Linux批量命令执行工具 可批量对多个Linux主机执行命令 重启后依然可以 方便省力 适合统一化管理Linux服务器 可一次性执行多行命令.
  • Linux服务器命令方式安装Matlab

    千次阅读 2014-08-04 16:50:06
    Linux服务器命令方式安装Matlab By--"悸动的青春ゞ   一、首先要下载安装光盘。 二、挂在光盘 mount -o loop /home/Matlab.R2012a.UNIX.iso /media/cdrom   三、创建安装目录 ...
  • java通过代码登录远程linux服务器并执行linux命令废话不多说,直接上代码和所需要的jar包代码块代码如下:package com.snailxr.helper;import java.io.BufferedReader; import java.io.InputStream; import java.io....
  • Linux服务器的关机和重启命令

    万次阅读 多人点赞 2016-06-16 21:10:17
    linux下一些常用的关机/重启命令: 在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的,通过本文的介绍,希望你可以更加灵活的...
  • Mac上传文件/文件夹到Linux上: 【scp Mac路径 Linux用户名@ip地址:Linux绝对路径】 (文件夹加参数scp -r) 例: 绝对路径:scp /mac/test/test.py root@192.163.20.30:/var/linux/tests/ 相对路径:scp ./test.py ...
  • Linux命令之远程登录服务器--ssh

    万次阅读 2018-10-01 20:11:28
    我在虚拟机上安装了Ubuntu系统和Red Het系统,Ubuntu当做客户机,Red Hat当做服务器来玩耍这个远程管理命令. 首先查看客户机的IP地址,如图:  然后在客户机中输入 ssh -p 22 thomas@192.168.98.131 -> 回车...
  • 修改linux服务器时间命令

    千次阅读 2020-09-02 11:00:12
    有的时候需要调整服务器时间,咋办呢 记住一条命令即可 date -s "2020-09-03 09:27:00" 就是把服务器当前时间改成2020-09-03 09:27:00 日期和时间之间有空格 完成后可以用 date验证
  • windows主机用scp命令Linux服务器上传和下载文件文章目录:一、scp介绍二、scp上传和下载1、上传2、下载三、scp的更多参数 一、scp介绍 scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似...
  • Linux 将本地文件上传Linux服务器 即ssh 命令上传本地文件
  • 清理linux服务器缓存的命令

    千次阅读 2019-12-23 16:12:16
    查看缓存的命令  free -h 清理缓存的命令   echo 1 >/proc/sys/vm/drop_caches
  • 上传文件到服务器Linux命令

    千次阅读 2018-10-18 09:51:03
    https://blog.csdn.net/linlzk/article/details/51352423

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 830,796
精华内容 332,318
关键字:

linux服务器命令

linux 订阅
友情链接: 376.1报文解析工具.rar