Linux系统总结03

一、Linux定时任务调度

  • crond 任务调度:

    1. 任务调度:指系统在某个时间执行的特定的命令或者程序。
      任务调度分类:① 系统工作:有些重要的工作必须周而复始的执行,如病毒扫描等;② 个别用户工作:个别用户可能希望执行某些程序,比如MySQL数据库的备份。
      在这里插入图片描述

    2. 指令:crontab [选项]。常用选项:-e:编辑crontab定时任务;-l:查询crontab任务;-r:删除当前用户所有的crontab任务。重启任务调度:service crond restart。

    3. 具体示例:比如定时执行一条命令:ls -l /etc/ > /tmp/test.txt ,输入crontab -e后进入文本编辑模式中,接着输入:*/1**** ls -l /etc/ > /tmp/test.txt ,意思是每小时的每分钟执行ls -l /etc/ > /tmp/test.txt命令。其中5个占位符分别表示:

      项目含义范围
      第一个 “*”一小时当中的第几分钟0-59
      第二个 “*”一天当中的第几小时0-23
      第三个 “*”一月当中的第几天1-31
      第四个 “*”一年当中的第几月1-12
      第五个 “*”一周当中的星期几0-7 (0和7都代表周日)

      其中 */1**** 中的 */1 代表每一分钟都执行一次。

      特殊符号含义
      *代表任何时间。比如第一个"*" 代表一小时中每分钟都执行一次
      ,代表不连续的时间。比如"0 8,12,16***"代表每天8点,12点,16点的0分都各执行一次
      -代表连续的时间。比如"0 5 * * 1-6"代表在周一到周五凌晨5点0分执行一次
      * /n代表每隔多久执行一次。比如"*/10 * * * *"代表每隔10分钟执行一次
      时间含义
      45 22 * * *在22点45分执行
      0 17 * * 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号,每周一0时0分都会执行

      【注意:星期几和几号最好不要同时出现,因为都是定义天,非常容易让管理员混淆】

      再比如:每天凌晨2点将MySQL数据库的testdb备份到文件中。具体操作步骤为:
      ① crontab -e;
      ② 0 2 * * * mysqldump -u root -p root testdb > /home/db.bak

  • at 定时任务:

    1. at 指令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
      在这里插入图片描述

    2. at 指令是一次性定时计划任务,执行完一个任务后不再执行此任务了。

    3. 在使用at 指令时,一定要保证atd进程的启动,可以使用相关指令来查看 (比如:ps -ef | grep atd)。

    4. 指令:at [选项] [时间]。使用Ctrl + D 结束at指令的输入。删除一个at任务:atrm [任务编号]。常见选项:

      选项含义
      -m当指定的任务完成后,将给用户发送邮件,即使没有标准输出
      -Iatq的别名
      -datrm的别名
      -v显示任务将被执行的时间
      -c打印任务的内容到标准输出
      -V显示版本信息
      -q <队列>使用指定的队列
      -f <文件>从指定文件读入任务而不是从标准输入读入
      -t <时间参数>以时间参数的形式提交要运行的任务
    5. at 时间定义(指定时间的方法):
      ① 接受在当天的 hh:mm(小时:分钟)式的时间指定。假如该时间已经过去,那么会在第二天执行。比如:04:00。
      ② 使用 midnight(深夜),noon(中午),teatime(下午4点)等比较模糊的词语来指定。
      ③ 采用12小时计时,即在时间后面加上AM或者PM。
      ④ 指定命令执行的具体日期,指定格式为 month day (月 日)或者 mm/dd/yy (月/日/年)或者 dd.mm.yy(日.月.年),指定的日期必须跟在指定的时间后面。比如:04:00 2022-03-1。
      ⑤ 使用相对计时法。指定格式:now + count time - units,now为当前时间,time-units为时间单位,可以为 minutes,hours,days,weeks。count为时间数量,如几天,几小时等,now + 5 minutes。
      ⑥ 直接使用today,tomorrow来指定完成命令的时间。
      在这里插入图片描述

二、Linux磁盘分区和挂载

  • Linux分区:
    1. 对于Linux来说,无论有几个分区,分给哪一个目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构。Linux中每个分区都是用来组成整个文件系统的一部分。

    2. Linux采用了一种叫 “载入” 的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
      在这里插入图片描述

    3. 查看所有设备挂载情况:lsblk 指令 或者 lsblk -f
      在这里插入图片描述

    4. 硬盘说明:
      ① Linux硬盘分为IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘。
      ② 对于IDE硬盘,驱动器标识符为:“hdx~”,其中 hd 表示分区所在设备的类型,这里指IDE硬盘。x 为盘号(a为基本盘,b为基本从属盘,c为辅助盘,d为辅助从属盘)。~ 代表分区,前4个分区用数字1-4表示,它们是主分区或者扩展分区。从5开始就是逻辑分区。比如:hda3 表示第一个IDE硬盘上的第三个主分区或扩展分区,hbd2 表示第二个IDE硬盘上的第二个主分区或扩展分区。
      ③ 对于SCSI硬盘,标识为 “sdx~”,sd 表示分区所在设备的类型,其余和IDE硬盘的表示方法一样。

      分区的指令:fdisk /dev/ + [需要分区的硬盘]。开始分区后输入n,新增分区;然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w,写入分区并退出,若不保存退出则输入q。】

      格式化磁盘指令:mkfs -t ext4 /dev/ + [需要格式化的硬盘]。其中ext4是分区类型。】

      挂载指令:mount [设备名称] [挂载目录]。比如:mount /dev/sdb1 /newdisk。解除挂载:umount [设备名称 或者 挂载目录]。比如:umount /dev/sdb1。注意:用命令行挂载重启后失效(即命令行挂载是临时的挂载)】

      永久挂载:通过修改 /etc/fstab 实现挂载。添加后执行 mount -a 即刻生效。】

    5. 磁盘情况查询 指令:df -h
      dh -h + /目录:查询指定目录的磁盘占用情况,默认为当前目录。
      其他常用选项:-s:指定目录占用大小汇总;-h:带计量单位;-a:含文件;–max-depth=1:子目录深度;-c:列出明细的同时,增加汇总值。

    6. 磁盘情况-工作实用指令:
      ① 统计 /opt 文件夹下文件的个数:ls -l /opt | grep “^-” | wc -l
      ② 统计 /opt 文件夹下目录的个数:ls -l /opt | grep “^d” | wc -l
      ③ 统计 /opt 文件夹下文件的个数,包括子文件夹里的:ls -lR /opt | grep “^-” | wc -l
      ④ 统计 /opt 文件夹下目录的个数,包括子文件夹里的:ls -lR /opt | grep “^d” | wc -l
      ⑤ 以树状显示目录结构:tree /opt/

三、Linux网络配置

  • 虚拟机、主机的网络原理图:
    在这里插入图片描述

  • ping 指令:测试主机之间的网络连通性。

    1. 基本语法:ping [目的主机ip]。
    2. 案例:ping www.baidu.com。
  • Linux网络环境配置:

    1. 第一种方法(自动获取):登录后,通过界面来设置自动获取ip。特点:Linux启动后会自动获取ip;缺点:每次都是自动获取。

    2. 第二种方法(指定ip地址):直接修改配置文件来指定ip,并可以连接到外网(程序员推荐)。
      ① 编辑 vi /etc/sysconfig/network-scripts/ifcfg-ens33
      ② 配置 vmnet8
      ③ 重启网络服务或重启系统:service network restart
      在这里插入图片描述

    3. 设置主机名:
      ① 为了方便记忆,可以给Linux系统设置主机名,也可以根据需要修改主机名。
      ② 操作指令:hostname 【查看主机名】。
      ③ 修改文件在 /etc/hostname 指定,修改后重启生效。

    4. 设置host映射:可以通过主机名,来找到某个Linux系统。比如:ping 某个Linux系统的ip,可以替代为ping 该系统的主机名。ping 192.168.1.1 => ping [hostname]。

      ① Windows系统:在 C:\Windows\System32\drivers\etc\hosts 文件中指定。
      比如:192.168.200.130 hspedu10
      ② Linux系统:在 /etc/hosts 文件中指定。

      当配置Linux集群时,可以通过host映射,以主机名代替具体Linux系统的地址。

四、Linux进程管理

在Linux系统中,每个执行的程序都被称为一个进程。每一个进程都分配一个ID号(pid,进程号)。每个进程都可能以两种方式存在:前台与后台。前台进程就是用户目前屏幕上可以进行操作的进程。后台进程则是实际在操作,但是由于屏幕上无法看到的进程,通常使用后台方式执行。一般的系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。

在这里插入图片描述

  • 显示系统执行的进程:ps [选项] 指令 用来查看目前系统中有哪些正在执行的进程,以及它们的执行情况。常用选项:-a:显示当前终端的所有进程信息;-u:以用户的格式显示进程信息;-x:显示后台进程运行的参数。
    在这里插入图片描述在这里插入图片描述

    字段说明
    PID进程识别号
    TTY终端机号
    TIME此进程所消耗CPU时间
    CMD正在执行的命令或进程名
    USER用户名称
    %CPU进程占用CPU的百分比
    %MEM进程占用的物理内存的百分比
    VSZ进程占用的虚拟内存大小(单位:KB)
    RSS进程占用的物理内存大小
    STAT进程状态:S表示睡眠;s表示该进程是会话的先导进程;N表示进程拥有比普通优先级更低 ;R表示正在运行;D表示短期等待;Z表示僵死进程;T表示被跟踪或者被停止等
    COMMAND启动进程所用的命令和参数,如果过长会截断显示
    1. 指令:ps -aux | grep xxx ,查看有没有xxx进程。ps -aux 显示全部的进程。
      比如:ps -aux | grep sshd在这里插入图片描述

    2. 以全格式显示当前所有的进程:ps -ef
      在这里插入图片描述

    3. 终止进程:kill [选项] [进程号] 通过进程号杀死进程。常用选项:-g 强迫进程立即停止。
      killall [进程名称] 通过进程名称杀死进程,也支持通配符,这在系统因为负载过大而变得很慢时很有用。【该进程的所有子进程都会被沙掉】
      比如:kill sshd 进程。查询启动sshd:/bin/systemctl start sshd.service。

    4. 查看进程树:pstree [选项] ,可以更加直观的来看进程信息。常用选项:-p:显示进程的PID;-u:显示进程的所属用户。

五、Linux服务(Service)管理

  • 服务(service)的本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如(MySQL,sshd等),因此又称为守护进程,是Linux中非常重要的概念。
    在这里插入图片描述

  • Service的管理指令:

    1. service [服务名] [start | stop | restart | reload | status]。

    2. 在CentOS7.0之后很多服务不再使用service,而是使用systemctl。

    3. service指令管理的服务在 /etc/init.d 查看。
      在这里插入图片描述

    4. 比如:service network status 查看网络服务状态。service network stop 关闭网络服务。

    5. 查看服务名:
      ① 使用 setup, 查看全部系统服务。
      ② ls - l /etc/init.d 看到service指令管理的服务。

    6. 服务的运行级别(runlevel):Linux系统有7种运行级别,常用的是3和5。

      运行级别说明
      0系统停机状态,系统默认运行级别不能为0,否则不能正常启动
      1单用户工作状态,root权限,用于系统维护,禁止远程登录
      2多用户状态(没有NFS),不支持网络
      3完全的多用户状态(有NFS),登录后进入控制台命令行模式
      4系统未使用,保留
      5X11控制台,登录后进入图形GUI模式
      6系统正常关闭并重启,默认运行级别不能为66,否则不能正常启动

      开机流程:开机 -> BIOS -> /boot -> systemd进程 -> 运行级别 -> 运行级别对于的服务。
      【运行级别在 /etc/initab 中设置】

    7. chkconfig 指令:可以给服务的各个运行级别设置自 启动 / 关闭。该指令管理的服务在 /etc/init.d 中可以查看。chkconfig --list [| grep xxx]
      chkconfig [服务名] --list
      chkconfig --level 5 [服务名] on/off 在5级别开启或关闭服务。
      【注意:chkconfig重新设置服务后自启动或关闭,需要重启机器才生效】

    8. systemctl 指令:systemctl [start | stop | restart | status] [服务名]。该指令在 /usr/lib/systemd/system 中查看。

      systemctl设置服务的自启动状态:
      ① systemctl list-unit-files [| grep 服务名] :查看服务开机启动状态。
      ② systemctl enable [服务名] :设置服务开机启动。
      ③ systemctl disable [服务名] :关闭服务开机启动。
      ④ systemctl is-enable [服务名] :查询某个服务是否自启动。

      比如:查看、关闭、重启防火墙服务:systemctl status | stop |restart firewalld.service。

      细节讨论:
      ① 关闭或启动防火墙后,立即生效。
      ② 这种方式只是临时生效,当系统重启后,还是回归以前对服务的设置。
      ③ 如果希望设置某个服务自启动或者关闭永久生效,使用 systemctl [enable|disable] [服务名]。

    9. 打开或关闭指定端口:在真正的生产环境,往往需要将防火墙打开,但问题是,如果打开防火墙,那么外部请求数据包就不能跟服务器监听端口通信。这时,需要打开指定的端口。比如80端口,22端口等。可以通过 firewall 指令实现。
      ① 打开端口:firewall-cmd --permanent --add-port=端口号/协议。
      ② 关闭端口:firewall-cmd --permanent --remove-port=端口号/协议。
      ③ 重新载入,才能生效:firewall-cmd --reload。
      ④ 查询端口是否开放:firewall-cmd --query-port=端口号/协议。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

璇转的鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值