zoukankan      html  css  js  c++  java
  • Linux 系统管理

    查看系统中所有进程,使用BSD操作系统格式
    ps aux

    查看系统中所有进程,使用Linux标准命令格式
    ps -le

    [root@localhost ~]# ps aux
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    root 1 0.0 0.3 125300 3764 ? Ss 21:00 0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
    root 2 0.0 0.0 0 0 ? S 21:00 0:00 [kthreadd]
    root 3 0.0 0.0 0 0 ? S 21:00 0:00 [ksoftirqd/0]
    root 5 0.0 0.0 0 0 ? S< 21:00 0:00 [kworker/0:0H]
    root 6 0.0 0.0 0 0 ? S 21:00 0:00 [kworker/u256:0]
    root 7 0.0 0.0 0 0 ? S 21:00 0:00 [migration/0]
    root 8 0.0 0.0 0 0 ? S 21:00 0:00 [rcu_bh]
    root 9 0.0 0.0 0 0 ? S 21:00 0:01 [rcu_sched]
    root 10 0.0 0.0 0 0 ? S< 21:00 0:00 [lru-add-drain]
    root 11 0.0 0.0 0 0 ? S 21:00 0:00 [watchdog/0]
    root 12 0.0 0.0 0 0 ? S 21:00 0:00 [watchdog/1]

    说明:每一行代表一个系统进程
    USER: 进程是由哪个用户产生的
    PID: 进程的ID号
    %CPU: 该进程占用cpu资源的百分比,占用越高,进程越耗费资源
    %MEM: 该进程占用物理内存的百分比,占用越高,进程越耗费资源
    VSZ: 该进程占用虚拟机内存的大小,单位KB
    RSS: 该进程占用实际物理内存的大小,单位KB
    TTY: 该进程是在哪个终端中运行的。其中tty 1-tty7代表本地图形终端。
    pts/0-255代表虚拟终端。
    STAT: 进程状态。常见的状态有:R:运行、S:睡眠、T:停止专业、s:包含子进程、+:位于后台
    START: 该进程的启动时间
    TIME: 该进程占用cpu的运算时间,注意不是系统时间
    COMMAND: 产生此进程的命令名

    查看系统健康状态:
    top [选项]
    选项:
    -d 时间 每隔多久更新的秒数,默认3s更新一次。

    top - 23:06:35 up 2:06, 2 users, load average: 0.00, 0.01, 0.05
    Tasks: 109 total, 1 running, 108 sleeping, 0 stopped, 0 zombie
    %Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
    KiB Mem : 995924 total, 532772 free, 278052 used, 185100 buff/cache
    KiB Swap: 2097148 total, 2097148 free, 0 used. 541780 avail Mem

    说明:
    23:06:35 :系统当前时间
    up 2:06 :系统运行了2小时06分
    2 users :当前系统登录了2个用户
    load average: 0.00, 0.01, 0.05 :系统在之前1分钟 5分钟 15分钟的平均负载,一般认为小于1时负载较小,大于1时系统超负荷
    Tasks: 109 total, 1 running, 108 sleeping, 0 stopped, 0 zombie:系统中的进程总数,1个正在运行,108个睡眠,0个正在停止,
    0个僵尸进程(正在终止,但还没有终止完成)
    0.2 us :cpu被用户占了0.2
    0.2 sy : cpu被系统占了0.2
    0.0 ni :cpu被改变过进程的优先级占用了多少
    99.7 id :cpu的空闲比
    0.0 wa :等待输入/输出的进程占用cpu的百分比
    0.0 hi : 硬中断请求服务占用cpu的百分比
    0.0 si :软中断请求服务占用cpu的百分比
    0.0 st :虚拟时间百分比

    995924 total:物理内存总大小
    278052 used: 物理内存已经用了的大小
    532772 free: 物理内存空闲大小
    85100 buff/cache :正在做缓冲
    2097148 total:交换分区(虚拟内存)的总大小
    0 used:已使用交换分区的大小
    2097148 free:空闲交换分区的大小


    查看进程树
    pstree [选项]
    -p: 显示进程的PID
    -u:显示进程的所属用户

    终止进程:

    重启进程:kill -1 进程id号
    强制杀死进程: kill -9 进程id号

    killall -9 进程名


    根据终端号踢用户
    pkill -9 -t tty1

    [root@localhost ~]# w
    23:48:24 up 2:47, 2 users, load average: 0.00, 0.01, 0.05
    USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
    root tty1 21:00 2:47m 0.01s 0.01s -bash
    root pts/0 192.168.31.144 21:00 0.00s 0.09s 0.00s w

    把进程放入到后台

    方法1: 在命令后面加 &
    方法2: 在命令执行过程中 按下ctrl+z
    区别:方法1,命令在后台是运行的;方法2,命令在后台是暂停的

    tar -zcf etc.tar.gz /etc &
    top ctrl+z

    查看后台的工作
    jobs [-l]
    选项: -l:显示工作的PID
    注:“+”号代表最近一个放入后台的工作,也是工作恢复时,默认恢复的工作。
    “-”号代表倒数第二个放入后台的工作。
    [root@localhost ~]# jobs -l
    [1] 6907 停止 (信号) top
    [2]- 6909 停止 (信号) top
    [3]+ 6911 停止 (信号) top

    只有最后一个和倒数第二个有符号。

    将后台暂停的工作恢复到前台执行
    fg %工作号
    参数:
    %工作号: %号可以省略,但是注意工作号和PID的区别

    把后台暂停的工作恢复到后台执行
    bg %工作号
    注:后台恢复执行的命令,是不能和前台有交互的,否则不能恢复到后台执行。(top vi)

    系统资源查看

    vmstat 监控系统资源

    vmstat 2 3 #监听3次每次间隔两秒

    dmesg #开机时内核检测信息
    dmesg | grep CUP

    free 查看内存使用状态
    free -b/k/m/g

    缓存(cache):加速数据从硬盘读取的
    缓冲(buffer):加速数据写入硬盘的

    查看cpu信息:
    cat /proc/cpuinfo 断电信息消失

    uptime命令:
    uptime
    显示系统的启动时间和平均负载,也就是top命令的第一行。w命令也可以看到这个数据

    查看系统与内核相关信息
    uname [选项]
    -a:查看系统所有的相关信息;
    -r:查看内核版本;
    -s:查看内核名称。

    查看系统位数
    file /bin/ls[root@localhost ~]# file /bin/ls

    /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=ceaf496f3aec08afced234f4f36330d3d13a657b, stripped
    说明:x86-64:64位

    查询系统的发行版本:
    lsb_release -a

    列出进程打开或使用的文件信息
    lsof [选项]
    选项 -c 只列出以字符串开头的进程打开的文件
    -u 只列出某个用户的进程打开的文件
    -p 列出某个PID进程打开的文件

    [root@localhost ~]# lsof -p 7111
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    kworker/1 7111 root cwd DIR 253,0 4096 64 /
    kworker/1 7111 root rtd DIR 253,0 4096 64 /
    kworker/1 7111 root txt unknown /proc/7111/exe

    [root@localhost ~]# lsof -c writeback
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    writeback 21 root cwd DIR 253,0 4096 64 /
    writeback 21 root rtd DIR 253,0 4096 64 /
    writeback 21 root txt unknown /proc/21/exe

    [root@localhost ~]# lsof -u root

    系统定时任务

    crond 服务管理与访问控制

    查询crond是否启动的两种方式:
    [root@localhost ~]# systemctl list-unit-files |grep crond
    crond.service enabled

    [root@localhost ~]# ps aux | grep crond
    root 7185 0.0 0.1 126284 1608 ? Ss 00:18 0:00 /usr/sbin/crond -n
    root 7194 0.0 0.0 112724 988 pts/0 R+ 00:22 0:00 grep --color=auto crond
    说明:auto crond 带auto是自启动

    crontab [选项]
    选项:
    -e: 编辑crontab 定时任务
    -l: 查询crontab 任务
    -r: 删除当前用户所有crontab任务

    进入crontab编辑界面。会打开vim编辑你的工作
    格式:
    * * * * * 执行的任务

    第一个:一小时当中的第几分钟 0-59
    第二个:一天 当中的第几个小时 0-23
    第三个:一个月当中的第几天 1-31
    第四个:一年 当中的第几个月 1-12
    第五个:一周当中的星期几 0-7(0和7都代表星期日)

    举例:最小单位是每分钟
    45 22 * * * 命令 在22点45分执行命令
    0 17 * * 1 命令 每周1的17点0分
    0 5 1,15 * * 命令 每月1号和15号的凌晨5点0分执行命令
    40 4 * * 1-5 命令 每周一到周五的凌晨4点40分执行命令
    */10 4 * * * 命令 每天的凌晨4点每隔10分钟执行一次
    0 0 1,15 * 1 命令 每月1号和15号,每周1的0点0分都会执行命令(注:星期几和几号最好不要同时出现,因为他们定义的都是天,容易晕,和的关系)

    实例:
    */5 * * * * /bin/echo "11">>/tmp/test
    5 5 * * 2 /sbin/shutdown -r now
    0 5 1,10,15 * * /root/sh/autobak.sh

    注意:系统中这样 date +%y%m%d 不行时按照该写法 date +\%y\%m\%d

    定时备份案例
    [root@localhost dbbak]# cat ../scriptt/autobak.sh
    #!/bin/bash
    ehco "开始:" >> /tmp/dbbak/11.txt
    date=$(date +\%y\%m\%d)
    size=$(du -sh /etc)
    echo "Date: $date!" > /tmp/dbbak/dbinfo.txt
    echo "Size: $size!" >> /tmp/dbbak/dbinfo.txt
    cd /tmp/dbbak
    tar -zcf etc_$date.tar.gz /etc /tmp/dbbak/dbinfo.txt &>/dev/null
    rm -rf /tmp/dbbak/dbinfo.txt

    [root@localhost dbbak]# crontab -l
    0 5 * * * sh /tmp/scriptt/autobak.sh

    问题不执行,换成 * 5 * * * sh /tmp/scriptt/autobak.sh 可以执行

  • 相关阅读:
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Spring_Around
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Spring_Args
    吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Spring_AfterThrowing
    (05)mongodb 查询表达式
    (04)mongodb 关于列的操作
    (03)mongodb 数据添加、修改、删除
    (02)mongodb 数据库与collection的基本操作
    (01)mongodb 安装、配置、启动、关闭
    (002)Linux vim命令模式下快捷键保存并退出ZZ
    Linux备份与恢复
  • 原文地址:https://www.cnblogs.com/javasl/p/11190534.html
Copyright © 2011-2022 走看看