linux学习
文章目录
- linux学习
- 一,帮助指令
- 二,vi和vim
- 三,命令格式与目录处理命令
- 四,文件目录类
- 五,时间日期类
- 六,搜索查找
- 七,压缩和解压
- 八,linux 组基本介绍
- 九,文件/目录 所在组
- 十,其他组
- 十一,useradd(添加用户), passwd(用户密码),userdel(删除用户)
- 十二,用户和组相关的文件
- 十三,指定运行级别
- 十四,权限的基本介绍
- 十五,任务调度
- 十六,Linux 分区
- 十七,磁盘情况查询
- 十八,实用指令
- 十九,添加硬盘
- 二十,网络配置
- 二十,设置主机名和hosts映射
- 二十二,主机名解析过程分析 (host,DNS)
- 二十三,进程管理
- 二十四,服务管理
- 二十五,动态监控进程
- 二十六,监控网络进程
- 二十七,rpm 包的管理
- 二十八,shell 编程
- 二十七,linux 日志
一,帮助指令
- man 获得帮助信息
基本语法:man [命令或配置文件](功能描述:获得帮助信息)
例如:查看ls命令的帮助信息 man ls
在linux中隐藏文件是以.开头的,选项可以组合使用,比如ls -al,
ls -al /root 表示:查看root目录下的全部信息 - help 指令
基本语法:help命令(功能描述:获得shell内置命令的帮助信息)
例如:查看cd命令的
二,vi和vim
-
介绍:Linux 系统会内置vi 文本编辑器
-
vi和vim的三种模式
- 正常模式
用vim打开一个文档就直接进入一般模式,在这种模式下,你可以使用左右键来移动光标,也可以使用删除字符 或删除整行 来处理文档,也可使用赋复制粘贴 - 插入模式
按下I,i,o,O等的任何字母后就会进入编辑模式,一般按i即可 - 命令行模式
输入esc 再输入:在这个模式当中,可以提供你相关指令,完成读取,存盘,替换,离开vim ,显示行号等动作则在此模式中达成。
- 正常模式
-
相关指令
在命令行下:
:wq(保存退出)
:q(退出)
:q!(强制退出) -
快捷键
三,命令格式与目录处理命令
ls 显示当前文件内容
- -a 显示所有(隐藏)文件
- -l 显示文件具体信息
- -d 列出目录本身,而不是它们的内容
- -h 打印尺寸如1K、234M、2G等
- -i 打印每个文件的索引号
[root@localhost ~]# ls -i
926340 公共 926344 视频 926341 文档 926342 音乐 926110 anaconda-ks.cfg
926339 模板 926343 图片 926338 下载 926337 桌面 926143 initial-setup-ks.cfg
pwd 显示当前目录的绝对路径
四,文件目录类
- cd 指令
cd ~ 或者cd : 回到自己的家目录。比如:你是root,cd ~到/root
[root@localhost zwj]# ls
[root@localhost zwj]# pwd
/home/zwj
[root@localhost zwj]# cd ~
[root@localhost ~]# pwd
/root
cd … 回到当前目录的上一级目录/
绝对路径:从根目录开始,/ 表是根目录。
相对路径:从你当前所在的路径开始
[root@localhost animal]# pwd
/home/animal
[root@localhost animal]# cd /home <绝对路径进入>
[root@localhost home]# pwd
/home
[root@localhost home]# cd animal
[root@localhost animal]# pwd
/home/animal
[root@localhost animal]# cd .. <相对路径进入>
[root@localhost home]# pwd
/home
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd ../home/jack
[root@localhost jack]# pwd
/home/jack
[root@localhost jack]# cd ../../root
[root@localhost ~]# ls
公共 模板 视频 图片 文档 下载 音乐 桌面 anaconda-ks.cfg initial-setup-ks.cfg
[root@localhost ~]# pwd
/root
- mkdir 指令( 用于创建目录)
- 语法:mkdir [选项] 要创建的目录
- 常用选项 -p 创建多级目录
例:
创建一个目录 /home/dog
创建多级目录 /home/animal/tiger
[root@localhost home]# mkdir animal/tiger
mkdir: 无法创建目录 “animal/tiger”: 没有那个文件或目录
[root@localhost home]# mkdir -p animal/tiger
[root@localhost home]# ls
animal jack milan test z-type zwj
[root@localhost home]# cd animal
[root@localhost animal]# ls
tiger
- rmdir 指令(删除空目录)
- 语法: rmdir [选项] 要删除的空目录
- 注意:如果要删除的目录不是空的,则无法删除。
- 如果要删除非空的目录,需要使用: rm -rf 要删除的目录(小心谨慎)
- touch 指令(创建空文件)
- 语法:touch 文件名
- cp 指令(拷贝文件)
- 语法:cp [选项] source dest
- 常用选项: -r 递归复制整个文件夹( 复制目录)
- 注意:如果重复给同一个目录复制相同的文件,在第二次cp时,则系统会提示是否覆盖,当重复的文件多时,就会麻烦,如果要强制覆盖时在原来输入的命令行前输入 \。
- rm指令(移除文件或目录)
- 语法:rm [选项] 要实删除的文件或目录
- 常用选项:
-r :递归删除整个文件
-f :强制删除不提示
rm -rf /home/ccc (删除效果和下面一样,只不过是强制删除)
[root@localhost home]# rm ccc
rm: 无法删除'ccc': 是一个目录
[root@localhost home]# rm -r ccc
rm:是否进入目录'ccc'? y
rm:是否删除普通空文件 'ccc/hello.txt'?y
rm:是否删除普通空文件 'ccc/bbb'?y
rm:是否删除目录 'ccc'?y
[root@localhost home]#
- mv 指令(移动文件与目录或重命名)
- 语法:
- mv oldNamefile newnamefile (重命名)
- mv 源文件 新文件 (移动)
- 可以在移动时改名字
- cat 指令(查看文件内容)
- 语法: cat [选项] 要查看的文件
- 常用选项:-n :显示行号
- 注意:cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上: 管道命令 |more
- more 指令
-
more指令是一个基于VI编辑器的文本过滤器,他以全屏的方式按页显示文本文件的内容。more 指令中内置了若干快捷键(交互的指令)
操作 功能说明 空格键(apace) 代表向下翻一页 Enter 代表向下翻一行 q 代表立刻离开more,不在显示该文件内容 ctrl + F 向下滚动一屏 ctrl + B 返回上一屏 = 输出当前行的行号 :f 输出文件名和当前行的行号 -
语法: more 要查看的文件
- less 指令
-
less 指令用来分屏查看文件内容,功能和more 指令类似,当比more 指令更强大,支持各种显示终端,less 指令在显示文件内容时,不是将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有高效的效率
-
语法:less 要查看的文件
操作 | 功能说明 |
---|---|
空格键 | 向下翻动一页 |
[pagedown] | 向下翻动一页 |
[pageup] | 向上翻动一页 |
/ 字串 | 向上搜索子串的功能;n向下查找;N: 向上查找 |
q | 离开less这个程序 |
- echo 指令(输出内容到控制台)
- 语法 :echo [选项] [输出内容]
- 例:使用echo指令输出环境变量,比如输出 $ PATH $HOSTNAME
- 使用echo指令输出hellow,world!
[root@localhost home]# echo $HOSTNAME
localhost.localdomain
[root@localhost home]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/root/bin
[root@localhost opt]# echo "hello world!"
hello world!
- head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行
-
语法:
head 文件 (查看文件头十行)
head -n 5 文件 (查看文件头5行)
- tail 指令
- 显示文件尾部内容,默认情况下是10行
- 语法:
tail 文件
tail -f 文件 (实时追踪该文件的所有更新)
- >指令 和 >>指令
- >输出重定向(输入内容覆盖原来的内容) 和 >>追加(不覆盖原来的内容
- )
- 语法:
ls -l > 文件 (列表的内容写入文件(覆盖写))
ls -al >>文件 (列表的内容追加到文件的末尾)
cat 文件1 > 文件2 (将文件1 的内容覆盖到文件2)
echo “内容” >>文件 (追加) - 实例:
将/home目录下的文件列表 写入到/home/info.txt 中
将当前的日历信息追加到/home/mycal 文件中
- ln指令
软连接,也称符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
- 语法 :ln -s [原文件或目录] [软连接名] (给原文件创建一个软连接)
- 注意:当我们使用pwd指令查看目录时,看到的是软链接所在的目录
- 例:
- 在/home目录下创建一个软连接 myroot ,连接/root 目录
- 删除软连接 myroot
[root@localhost home]# ln -s /root myroot
[root@localhost home]# ls
animal bbb ddd hello.txt info.txt jack milan mycal myroot test z-type zwj
[root@localhost home]# rm myroot
rm:是否删除符号链接 'myroot'?y
- history 指令
-
查看已经执行过历史命令,也可以执行历史命令
-
语法:history
-
例:
显示最近使用过的10个指令 history 10
执行历史编号为n的指令 !n
五,时间日期类
- date 指令-显示当前日期
- 语法:
date (显示当前日期)
date + %Y (显示当前年份)
date + %m (显示当前月份)
date + %d (显示当前是那一天)
date “+%Y-%m-%d %H:%M:%S" (显示年月日时分秒)
[root@localhost /]# date
2021年 07月 26日 星期一 14:25:25 CST
[root@localhost /]# date "+%Y- %m- %d"
2021- 07- 26
[root@localhost /]# date "+%Y-%m-%d"
2021-07-26
- cal 指令
- 查看日历指令
- 语法: cal [选项] (功能描述:不加选项,显示本月日历)
- 显示2021年日历: cal 2021
六,搜索查找
- find 指令
-
从指定的目录向下递归遍历各个子目录将满足条件的文件或目录显示在终端。
-
语法:find [搜索范围] [选项]
-
选项 功能 -name<查询方式> 按照指定的文件名查找文件 -user<用户名> 查找属于指定用户的所有文件 -size<文件大小> 安=按照指定的文件大小查找文件
[root@localhost home]# find /home -name hello.txt
/home/ddd/hello.txt
/home/hello.txt
[root@localhost home]#
- locate 指令
- 可以快速定位文件的路径,locate 利用事先创建的系统中的所有文件名称级路径的locate数据库实现快速定位文件,locate指令无需遍历整个系统,查询虚的块为了保证查询结果的准确度,管理员必须定期更新locate时刻。
- 语法:locate 搜索文件
- 注意:由于locate 指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库
[root@localhost home]# updatedb
[root@localhost home]# locate hello.txt
/home/hello.txt
/home/ddd/hello.txt
- which 指令,可以查看某个指令在那个目录下,
[root@localhost home]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
- grep 指令 和 管道符号 |
-
语法:grep [选项] 查找内容 源文件
-
常用选项
选项 功能 -n 显示匹配行及行号 -i 忽略字母大小写 -
例:在hello.txt 文件中,查找“yes" 所在的行,显示行号 :cat /home/hello.txt |grep “yes”
[root@localhost home]# cat /home/hello.txt | grep "yes"
yes
yes or no
[root@localhost home]# cat /home/hello.txt | grep -n "yes"
1:yes
2:yes or no
[root@localhost home]# grep -n "yes" /home/hello.txt
1:yes
2:yes or no
cp -rp [源文件或目录][目标目录]
-p 保留文件属性
七,压缩和解压
- gzip/gunzip 指令
- gzip 用于压缩文件 ,gunzip 用于解压
- 语法:
gzip 文件 (压缩文件,只能压缩为*.gz文件)
gunzip文件.gz (解压缩文件) - 例:
将/home下的hello.txt文件压缩
将hello.txt.gz 文件进行解压缩
[root@localhost home]# gzip hello.txt
[root@localhost home]# ls
animal bbb ddd hello.txt.gz info.txt jack milan mycal test z-type zwj
[root@localhost home]# gunzip hello.txt.gz
[root@localhost home]# ls
animal bbb ddd hello.txt info.txt jack milan mycal test z-type zwj
- zip/unzip指令
- zip 用于压缩文件,unzip 用于解压,这个在项目打包发布中很有用
- 语法:
zip [选项] xxx.zip 将要压缩的内容 (压缩文件和目录的命令)
unzip [选项] xxx.zip (解压缩文件) - zip 选项 :-r 递归压缩,即压缩目录
- unzip 选项:-d<目录> :指定解压缩后文件的存放目录
- 应用实例:
将/home目录下的所有文件进行压缩 成:myhome.zip
zip -r myhome.zip /home/ 将home目录及其包含的文件和子文件夹压缩
将myhome.zip解压到/opt/tmp目录下
unzip -d /opt/tmp /home/myhome.zip
- tar 指令
-
tar指令是打包指令,最后打包的文件是 .tar.gz 的文件
-
语法:tar [选项] xxx.tar.gz 打包的内容 (打包目录,压缩后的文件格式 .tar.gz)
-
选项说明
选项 功能 -c 产生 .tar打包文件 -v 显示详细信息 -f 指定压缩后的文件名 -z 打包同时压缩 -x 解包.tar 文件 -
应用实例:
压缩多个文件:将/home/info.txt 和hello.txt 压缩成 pc.tar.gz,并解压
[root@localhost home]# tar -zcvf pc.tar.gz /home/info.txt /home/hello.txt
tar: 从成员名中删除开头的“/”
/home/info.txt
tar: 从硬连接目标中删除开头的“/”
/home/hello.txt
[root@localhost home]# ls
bbb hello.txt jack mycal pc.tar.gz z-type
ddd info.txt milan myhome.zip test zwj
[root@localhost home]# ls
bbb ddd jack milan mycal myhome.zip pc.tar.gz test z-type zwj
[root@localhost home]# tar -zxvf pc.tar.gz
home/info.txt
home/hello.txt
[root@localhost home]# ls
bbb ddd home jack milan mycal myhome.zip pc.tar.gz test z-type zwj
[root@localhost home]# cd home
[root@localhost home]# ls
hello.txt info.txt
- 实例:将pc.tar.gz 解压到指定文件夹
八,linux 组基本介绍
在Linux中的每个用户必须属于一个组,不能独立于组外,在Linux中每个文件都有所有者,所在组,其他组的概念。
1. 所有组
2. 所在组
3. 其他组
4. 改变用户所在的组
九,文件/目录 所在组
文件/目录的所有者
- 一般为文件的创作者,谁创建该文件,谁就是该文件的所有者
- ls -ahl 指令
- 查看文件所有者
所有者 所属组 文件大小
drwxr-xr-x. 9 root root 4.0K 7月 26 18:55 .
dr-xr-xr-x. 18 root root 4.0K 7月 25 14:54 ..
-rw-r--r--. 1 root root 0 7月 25 21:29 bbb
drwxr-xr-x. 2 root root 4.0K 7月 25 21:31 ddd
- chown指令
- 修改文件所有者
- 语法:chown 用户名 文件名
- 例:使用root 创建一个文件apple.txt ,让后将其所有者该为
- -R 如果是目录,则使其下所有子文件或目录递归生效
[root@localhost home]# touch apple.txt
[root@localhost home]# ll
-rw-r--r--. 1 root root 0 7月 26 20:56 apple.txt
[root@localhost home]# chown jack apple.txt
[root@localhost home]# ll
-rw-r--r--. 1 jack root 0 7月 26 20:56 apple.txt
- chgrp 指令
-
修改文件所在组
-
R 如果是目录,则使其下所有子文件或目录递归生效
-
语法:chgrp 组名 文件名
-
例:使用root 用户创建文件orange.txt,看文件所属组,让后将组设置为fruit组
[root@localhost home]# chgrp fruit orange.txt
以上的对文件操作同样都满足对目录操作
十,其他组
简介:除文件所有着和所在组的用户外,系统的其他用户都是文件的其他组
十一,useradd(添加用户), passwd(用户密码),userdel(删除用户)
-
su - 用户名、切换用户
-
whoami
-
id 用户
-
用法:su - 用户名;切换用户
权限高的用户转向权限低的,不需要输入密码;相反的话,就需要。 -
logout 返回上一次登录的用户
十二,用户和组相关的文件
用户组:系统可以对有共性/权限的多个用户进行统一的管理。
对组的操作
- 添加用户组
指令:groupadd 组名 - 删除用户组
- 指令:groupdel 组名
- 在创建用户时同时创建用户组
指令:useradd -g 用户组 用户名 - 改变用户所在组
指令:usermod -d 目录名 用户名 改变用户登录的初始目录,(该用户需要有进入该目录权限)
指令:usermod -g 新组名 用户名
在创建用户时没有创建用户组,则指定用户名为用户组
- /etc/passwd 文件
用户(user)的配置文件,记录用户的各种信息,用户名:口令:用户标识号:注释性描述:主目录:登录shell - /etc/shadow 文件
口令的配置文件;登录名:机密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志 - /etc/group 文件
组的配置文件,记录linux包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表
[root@localhost ~]# groupadd wudang
[root@localhost ~]# groupdel wudang
[root@localhost ~]# id king
uid=1002(king) gid=1002(king) 组=1002(king)
[root@localhost ~]# groupadd wudang
[root@localhost ~]# useradd -g wudang zwj
[root@localhost ~]# id zwj
uid=1004(zwj) gid=1004(wudang) 组=1004(wudang)
[root@localhost ~]# groupadd mojiao
[root@localhost ~]# useradd -g mojiao zwj
useradd:用户“zwj”已存在
[root@localhost ~]# usermod -g mojiao zwj
[root@localhost ~]# id zwj
uid=1004(zwj) gid=1005(mojiao) 组=1005(mojiao)
[root@localhost ~]# cd etc/passwd
-bash: cd: etc/passwd: 没有那个文件或目录
[root@localhost ~]# cd etc
-bash: cd: etc: 没有那个文件或目录
[root@localhost ~]# cd /etc
[root@localhost etc]# pwd
/etc
十三,指定运行级别
运行级别说明
0 :关机
1 : 单用户
2 :多用户状态没有网络
3 :多用户状态有网络
4 :系统未使用保留给用户
5 :图形界面
6 :系统重置
常用运行级别是3和5,也可以指定默认运行级别,
命令:init[0 1 2 3 4 5 6];输入后直切换运行级别
multi-user.target —>3
graphical.target —>5
看当前的运行级别:输入:systemctl get-default
[root@localhost ~]# systemctl get-default
multi-user.target
[root@localhost ~]# systemctl set-default graphical.target
Removed /etc/systemd/system/default.target.
Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/graphical.target.
[root@localhost ~]# systemctl get-default
graphical.target
设置运行级别的话是:systemctl set-default [TARGET.targeet];括号内输入的是运行级别,此处输入后,需要重启才可切换运行级别(输入reboot来重启)。
十四,权限的基本介绍
drwxr-xr-x. 2 root root 4096 7月 26 18:55 home
"2 " 文件:硬链接数或 目录:子目录数
在 " drwxr-xr-x" 中
- 第0位确定文件类型(d,-,l,c,b)
- l 是链接,相当于Windows的快捷方式
- d 是目录,相当于Windows的文件夹
- c 是字符设备文件,鼠标,键盘
- b 是块设备,比如:磁盘
-
- 是普通文件
- 第1-3位是所有着拥有的权限 ----- user
- 第4-6位是所属组拥有的权限 -----group
- 第7-9位是其他用户拥有该文件的权限 ----other
rwx 权限
一,rwx作用到文件
- r 代表可读(read):可以读取,查看
- w 代表(write): 可以修改,但不代表可以删除,删除的前提条件是对该文件的所在目录有写的权限,才可删除。
- x 代表可执行(execute) :可以被执行
二,rwx作用到目录 - r 代表可读(read):可以读取,ls查看目录内容
- w 代表(write): 可以修改,对目录内创建+删除+重命名
- x 代表可执行(execute) :可以进入该目录
修改权限- chmod
说明: 通过chmod指令,可以修改文件或者目录的权限。
- 第一种方式:+ ,-,= 变更权限
u:所有者 g:所有组 o:其他人 a:所有人
- chmod u=rwx,g=rx,o=x 文件/目录名
- chmod o+w 文件/目录名
- chmod a-x 文件/目录名
案例: - 给abc文件的所有者读写执行的权限,所在组读执行权限,其他组读执行权限
chmod u=rwx,g=rx,o=rx abc
- 第二种方式:通过数字变更权限
r=4 w=2 x=1 rwx=4+2+1=7
- thmod u=rwx,g=rx,o=x 文件目录名相当于 chmod 751 文件目录名
修改文件所有者 -chown
-
chown newowner 文件/目录 (改变所有者)
chown newowner:newgroup 文件/目录(改变所有者和所在地) -
例:
十五,任务调度
- crontab
-
概述:
任务调度:系统咋某个时间执行特定的命令或程序
任务调度分类:
1. 系统工作:有些重要的工作必须周而复始地执行,如:病毒扫描
2. 个别用户可能执行某些程序,比如:对MySQL数据库备份 -
语法:crontab [选项]
-
-e 编辑crontab定时任务 -l 查询crontab任务 -r 删除当前用户的所有的crontab任务 -
参数细节说明
-
项目 含义 范围 第一个 * 一小时中的第几分钟 0-59 第二个 * 一天中的第几个小时 0-23 第三个 * 一个月中的第几天 1-31 第四个 * 一年中的第几个月 1-12 第五个 * 一周中的额星期几 0-7(0,7都代表星期日) 特殊符号 含义 * 代表任何时间,比如第一个*,一小时中每分钟都执行一次 , 代表不连续的时间,比如“0 8,12,6 * * *命令”,代表每天的8:00,12:00,16:00都执行一次命令 - 代表连续的时间,比如“0 5 * * 1-6命令”,代表周一到周六的5:00执行命令 */n 代表每隔多久执行一次,比如“*/10 * * * *命令”,代表每隔十分钟执行一次 星期几和几号最好不要同时使用,他们都是定义的天,非常容易让管理员搞混
-
案例:每隔一分钟,将当前日期和日历都追加到/home/mycal 文件
[root@localhost home]# vim my.sh
[root@localhost home]# cat my.sh
date >> /home/mycal
cal >> /home/mycal
[root@localhost home]# ll
-rw-r--r--. 1 root root 39 7月 27 10:41 my.sh
[root@localhost home]# chmod u+x my.sh
[root@localhost home]# ll
-rwxr--r--. 1 root root 39 7月 27 10:41 my.sh
[root@localhost home]# crontab -e
[root@localhost home]# crontab -l
*/1 * * * * /home/my.sh
- at 定时任务
介绍:
-
at 命令是一次性定时计划任务,at的守护进程atd 会以后台模式运行,检查作业队列来运行。
-
默认情况下,atd 守护进程每60秒检查作业队列
-
使用该命令时,一定要保证atd进程的启动,可以使用相关的指令来查看
ps -ef | grep atd // 检查atd 是否运行 -
命令格式
at [选项] [时间]
CTRL + D 结束at 命令输入
at 指定时间的方法 -
- hh:mm (小时:分钟)式,假如该时间过去,就第二天执行 例:04:00
-
- 使用midnight(深夜),noon(中午),teatime(一般下午4点)等比较模糊的词
-
atq 是显示当前的要执行的任务
atrm 是删除任务 atrm n n是要删除的任务的序号
应用实例:
实例1:2天后的下午5点执行/bin/ls /home
十六,Linux 分区
原理介绍
- Linux无论有几个分区,分给哪一个目录使用,他归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
- Linux采用一种叫“载入”的处理方法,他的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入一个分区将是他的存储空间在一个目录下获得
- 查看所有设备挂载情况 :命令 lsblk 或 lsblk -f
[root@localhost bin]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 17G 0 part /
└─sda3 8:3 0 2G 0 part [SWAP]
sr0 11:0 1 9.3G 0 rom /run/media/root/CentOS-8-4-2105-x86_64-dvd
[root@localhost bin]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ext4 2332fedb-43a0-428e-90a4-f311cb416356 /boot
├─sda2 ext4 e4ced8de-2df5-4a5c-8393-6c2cb4ac933e /
└─sda3 swap 1369e88b-1959-4691-b7eb-2ba4668f3f78 [SWAP]
sr0 iso9660 CentOS-8-4-2105-x86_64-dvd 2021-06-01-20-39-18-00 /run/media/root/CentOS-8-4-
十七,磁盘情况查询
- 查询系统整体磁盘使用情况
- 语法:df -h
- 例:查询系统整体磁盘使用情况:
[root@localhost bin]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 364M 0 364M 0% /dev
tmpfs 392M 0 392M 0% /dev/shm
tmpfs 392M 12M 380M 3% /run
tmpfs 392M 0 392M 0% /sys/fs/cgroup
/dev/sda2 17G 5.7G 11G 36% /
/dev/sda1 976M 200M 710M 22% /boot
tmpfs 79M 6.8M 72M 9% /run/user/0
/dev/sr0 9.3G 9.3G 0 100% /run/media/root/CentOS-8-4-2105-x86_64-dvd
- 查询指定目录的磁盘占用情况
- 语法:du -h
- 默认情况是当前目录
- -s 指定目录占用大小汇总
- -h 带计量单位
- -a 含文件
- –max-depth=1 子目录深度
- -c 列出明细的同时,增加汇总值
实例: 查询/opt目录的磁盘占用情况,深度位1
一下只显示子目录,不包括文件,要全显示写 du -ha --max-depth=1 /opt
[root@localhost opt]# du -h --max-depth=1 /opt
101M /opt/tmp
101M /opt
[root@localhost op
十八,实用指令
- 统计/home 文件夹下文件的个数
[root@localhost home]# ls -l /home |grep "^-"
-rw-r--r--. 1 jack root 0 7月 26 20:56 apple.txt
-rw-r--r--. 1 root root 0 7月 25 21:29 bbb
-rw-r--r--. 1 root root 44000 7月 27 18:03 mycal
-rw-r--r--. 1 root root 28440407 7月 26 18:16 myhome.zip
-rwxr--r--. 1 root root 39 7月 27 10:41 my.sh
-rw-r--r--. 1 root fruit 0 7月 26 21:23 orange.txt
-rw-r--r--. 1 root root 178 7月 26 18:42 pc.tar.gz
[root@localhost home]# ls -l /home |grep "^-" | wc -l
7
- 统计/opt文件夹下目录的个数
[root@localhost home]# ls -l /home |grep "^d" | wc -l
7
- 统计/opt 文件夹下文件的个数,包括子文件夹里的
[root@localhost home]# ls -lR /home |grep "^-" | wc -l
12
- 统计/opt文件夹下目录的个数,包括子文件夹里的
[root@localhost home]# ls -lR /home |grep "^d" | wc -l
23
- 以树状显示目录结构
如果没有tree 则使用yum install tree安装
[root@localhost home]# tree /home
/home
├── apple.txt
├── bbb
├── ddd
│ └── hello.txt
├── home
│ ├── hello.txt
│ └── info.txt
├── jack
│ ├── 公共
│ ├── 模板
│ ├── 视频
│ ├── 图片
│ ├── 文档
│ ├── 下载
│ ├── 音乐
│ └── 桌面
├── milan
├── mycal
├── myhome.zip
├── my.sh
├── orange.txt
├── pc.tar.gz
├── test
├── z-type
│ ├── 公共
│ ├── 模板
│ ├── 视频
│ ├── 图片
│ ├── 文档
│ ├── 下载
│ ├── 音乐
│ ├── 桌面
│ ├── hellow.c
│ └── hellow.java
└── zwj
23 directories, 12 files
十九,添加硬盘
-
虚拟机添加硬盘
在虚拟机菜单中,选择设置,在设备列表添加硬盘,下一步,选择磁盘大小,直至完成,重启系统。 -
分区
分区命令:fdisk /dev/sdb
对/sdb分区 -
格式化
命令:mkfs -t ext4 /dev/sdb1
其中ext4 是分区类型 -
挂载
将一个分区和一个目录联系起来
mount 设备名称 挂载目录
例:mount /dev/sdb1 /newdisk
取消挂载: umount 设备名称或挂载目录注意:利用上述方法挂载,在系统重启后又恢复原样
-
设置可以自动挂载
二十,网络配置
查看网络IP和网关
- 查看windows 环境的网络配置
- ipconfig (要以管理员身份执行)
- 查看Linux网络配置
- ifconfig
测试主机之间的网络联通性
- ping 目的主机 (测试当前主机是否可以连接到目的主机)
- ping www.baidu.com
ping ip地址
注意:防火墙
网络配置
二十,设置主机名和hosts映射
- 设置主机名
- 指令 hostname : 查看主机名
- 修改文件在/etc/hostname 指定
- 修改重启后生效
[root@le-zh-t ~]# hostname
le-zh-t
[root@le-zh-t ~]# cat /etc/hostname
le-zh-t
- 设置hosts 映射(类似IP与域名之间建立联系,DNS)
- 通过主机名找到某个Linux系统 (比如利用ping)
- windows系统
在C:\windows\system32\drivers\etc\hosts文件指定即可 - Linux系统
在/etc/hosts 文件指定
二十二,主机名解析过程分析 (host,DNS)
- hosts 是一个文本文件,用来记录ip 和hostname(主机名)的映射关系
- DNS (Donaim Name System),域名系统
是互联网上所谓域名和IP地址互相映射的一个分布式数据库
- 在浏览器输入网址后,浏览器先检查浏览器缓存中有没有该域名解析IP地址,有就调用完成解析,没有就检查操作系统DNS解析器缓存,有就返回IP完成解析,这两个缓存可以理解为 本地解析器缓存。
- 一般来说,当电脑第一次成功访问某个网站后,在一定时间内,浏览器或操作系统会缓存他的IP地址(DNS解析记录)如 在cmd 窗口中输入
- ipconfig / displaydns //DNS域名解析缓存
- ipconfig / flushdns //手动清理dns缓存
- 如果本地解析器缓存没有找到对应的映射,检查系统中的hosts 文件中有没有配置对应的域名IP映射。
- 如果本地解析器缓存和hosts 文件中均没有,则在域名服务DNS进行解析域
二十三,进程管理
基本介绍
- 在Linux中,每个执行的程序都称为一个进程,每个进程都分配一个id号(pid,进程号)
- 每个进程都可能以两种方式存在、前台和后台,前台就是屏幕上可以操作的。后台是实际在操作,在屏幕上无法看到的进程
- 一般的系统服务器是以后台进程的方式存在,而且常驻系统,直到关机
显示系统执行的进程
- ps 命令是用来查看目前系统中有哪些正在执行,可以不带参数
- ps -a:显示当前终端的所有进程信息
- ps -u:以用户的格式显示进程信息
- ps -x:显示后台进程运行的参数
上面参数可组合使用
字段 | 说明 |
---|---|
PID | 进程识别号 |
TTY | 终端机号 |
TIME | 此进程所消耗的cpu时间 |
CMD | 正在执行的命令或进程 |
%MEM | 进程占用物理内存的百分比 |
VSZ | 进程占用的虚拟内存大小 |
RSS | 进程占用的物理内存大小 |
STAR | 进程状态,s-,N-,R-,D-,Z-,T- |
COMMAND | 启动进程所需要的命令和参数过长会截断显示 |
- 指令:ps -aux |grep xxx 查询自己想要找的进程
[root@le-zh-t ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 19:33 ? 00:00:03 /usr/lib/systemd/systemd --switched-root --syste
root 2 0 0 19:33 ? 00:00:00 [kthreadd]
root 3 2 0 19:33 ? 00:00:00 [rcu_gp]
root 4 2 0 19:33 ? 00:00:00 [rcu_par_gp]
终止进程
-介绍:
某个进程执行一半需要停止时,或是消耗很大资源, 都可使用kill 命令来完成
- 基本语法:
kill [选项] 进程号 (通过进程号来终止进程)
killall 进程名称 (通过进程名称,也支持通配符,这在系统因负载过大而变得很慢时很有用,其子进程也终止) - 常用选项
- -9 :表示强迫进程立即停止
- 例:
踢掉某个非法登录的用户: kill 进程号
终止远程登录服务sshd,在适当的时候再重启:kill sshd进程号;/bin/systemctl start sshd.service
终止多个gedit, kill gedit
查看进程树
- 语法:pstree [选项],可以只管看进行信息
- 常用选项
-p :显示进行的pid(进程号)
-u :显示进程的所属用户 - 实例:用树状的形式显示进程的pid:pstree -p
-
显示进程的用户:pstree -u
二十四,服务管理
- 介绍:
服务本质就是进程,但是是运行再后台的,通常会监听某个端口,等待其他进程的请求,比如:mysqld,sshd,防火墙;因此又称守护进程
- service管理指令
- 语法:service 服务名 [start | stop | restart | reload | status]
- service 指令管理的服务在 /etc/init.d 查看(在centos8 没用)
- 在centos7.0后 很多服务不再使用service,而是systemctl
- setup显示所有服务(8后没)
- systemctl 管理指令
- 语法:systemctl [start | stop | restart | status] 服务名
- systemctl 指令管理的服务在/usr/lib/systemd/system 查看
systemctl 设置服务的自启动状态
- systemctl list-unit-file [ | grep 服务名] (查看服务器开机启动状态,grep可以过滤)
- systemctl enable 服务名 (设置服务开机启动)
- systemctl disable 服务名 (关闭服务开机启动)
- systemctl is-enable 服务名 (查询服务是否自启动)
例:
- 查看防火墙的状态
[root@le-zh-t init.d]# ls -l /usr/lib/systemd/system | grep fire
-rw-r--r--. 1 root root 674 2月 4 15:02 firewalld.service
[root@le-zh-t init.d]# systemctl list-unit-files | grep firewalld.service
firewalld.service enabled
[root@le-zh-t init.d]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-07-27 19:33:07 CST; 14h ago
Docs: man:firewalld(1)
Main PID: 846 (firewalld)
Tasks: 2 (limit: 4647)
Memory: 1.5M
CGroup: /system.slice/firewalld.service
└─846 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid
7月 27 19:33:06 le-zh-t systemd[1]: Starting firewalld - dynamic firewall daemon...
7月 27 19:33:07 le-zh-t systemd[1]: Started firewalld - dynamic firewall daemon.
7月 27 19:33:07 le-zh-t firewalld[846]: WARNING: AllowZoneDrifting is enabled. This is considered a>
-
关闭防火墙和重启
systemctl status firewalld (查看状态)
systemctl stop firewalld (关闭)
systemctl start firewalld (重启) -
细节讨论
- 关闭启动防火墙,会立即生效
- 这种方式只是临时生效,系统重启后又恢复了
- 如果希望永久生效,使用 systemctl [enable | disable] 服务名
[root@le-zh-t init.d]# systemctl stop firewalld
[root@le-zh-t init.d]# systemctl is-enabled firewalld
enabled
[root@le-zh-t init.d]# systemctl disable firewalld
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
[root@le-zh-t init.d]# systemctl is-enabled firewalld
disabled
[root@le-zh-t init.d]# systemctl enable firewalld
Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.
[root@le-zh-t init.d]# systemctl is-enabled firewalld
enabled
- firewall 指令
-
打开或关闭指定端口
在真正的生产环境中是需要打开防火墙,在打开的情况下,外部的请求数据包就不能打开跟服务器监听端口通讯。这时需要打开指定的端口。比如:80,22,8080, -
打开端口:firewall-cmd --permanent --add-port=端口号/协议
关闭端口:firewall-cmd --permanent --remove-port=端口号/协议
重新载入才能生效:firewall-cmd --reload
查询端口是否开发:firewall-cmd --query-port=端口/协议
[root@le-zh-t init.d]# firewall-cmd --query-port=111/tcp
no
[root@le-zh-t init.d]# firewall-cmd --permanent --add-port=111/tcp
success
[root@le-zh-t init.d]# firewall-cmd --reload
success
[root@le-zh-t init.d]# firewall-cmd --query-port=111/tcp
yes
[root@le-zh-t init.d]# firewall-cmd --remove-port=111/tcp
success
[root@le-zh-t init.d]# firewall-cmd --query-port=111/tcp
no
二十五,动态监控进程
-
介绍:
top 和ps指令类似,他们都是用来显示正在执行的进程。top与ps 最大的不同之处在于,top在执行一段时间可以更新正在运行的进程 -
基本语法:
top [选项] -
选项 功能 -d 秒数 指定top命令每隔几秒跟新,默认是3秒 -i 使top不显示任何闲置或着僵死进程 -p 通过指定监控进程id来仅仅监控某个进程的状态
[root@le-zh-t init.d]# top
top - 18:43:03 up 6:56, 1 user, load average: 0.00, 0.02, 0.00
Tasks: 238 total, 1 running, 237 sleeping, 0 stopped, 0 zombie(僵死进程)
%Cpu(s): 1.3 us, 2.1 sy, 0.0 ni, 96.1 id, 0.0 wa, 0.4 hi, 0.1 si, 0.0 st
MiB Mem : 782.4 total, 50.1 free, 502.1 used, 230.2 buff/cache
MiB Swap: 2048.0 total, 1387.0 free, 661.0 used. 153.3 avail Mem
············
操作 | 功能 |
---|---|
P | 以cpu的使用率排序,默认 |
M | 以内存的使用率排序 |
N | 以pid排序 |
q | 退出top |
- 例:监视待定用户,比如监控jack用户和终止用户进程
top :输入后 回车有显示信息,再按u,回车 输入命令即可。输入k再输入进程号就会终止用户进程
二十六,监控网络进程
- 查看系统网络情况 netstat
- 语法:netstat [选项]
- 选项说明:
- an 按一定顺序排序输出
-p 显示那个进程在调用 - 检查主机连接命令:ping
是一种网络检测工具,主要是检查远程主机是否正常,或是两部主机间的网线或网卡故障。 如:ping 对方的IP地址 - netstat -anp
二十七,rpm 包的管理
- 介绍
rpm 用于互联网下载包的打包及安装工具,他包含在某些Linux发行版中,他生成具有.rpm拓展名的文件,类似于Windows的setup.exe ,这一文件格式名虽然打上了Redhat的标志,但理念是通用的
-
rpm包的简单查询指令
查询以安装的rpm列表 rpm -qa | grep xxx
[root@le-zh-t /]# rpm -qa | grep firefox
firefox-78.9.0-1.el8_3.x86_64
-
rpm 包名的基本格式
- firefox-78.9.0-1.el8_3.x86_64
- firefox :名称
- 78.9.0-1 :版本号
- el8_3.x86_64 :适用操作系统 (centos 8,64位)
-
rpm 包的其他查询指令:
- rpm -qa :查询所安装的所有的rpm 软件包
- rpm -qa | more
- rpm -qa | grep X
- rpm -q 软件包名 :查询软件包是否安装
- rpm -qi 软件包名 :查询软件包信息
- rpm -ql 软件包名 :查询软件包中的文件
- rpm -qf 文件全路径名 :查询文件所属的软件包
- rpm -qf
[root@le-zh-t /]# rpm -qa | grep firefox
firefox-78.9.0-1.el8_3.x86_64
[root@le-zh-t /]# rpm -q firefox
firefox-78.9.0-1.el8_3.x86_64
[root@le-zh-t /]# rpm -qi firefox
Name : firefox
Version : 78.9.0
Release : 1.el8_3
Architecture: x86_64
Install Date: 2021年07月24日 星期六 15时40分00秒
Group : Unspecified
Size : 260252211
License : MPLv1.1 or GPLv2+ or LGPLv2+
Signature : RSA/SHA256, 2021年03月27日 星期六 01时54分31秒, Key ID 05b555b38483c65d
Source RPM : firefox-78.9.0-1.el8_3.src.rpm
Build Date : 2021年03月26日 星期五 04时17分46秒
Build Host : x86-02.mbox.centos.org
Relocations : (not relocatable)
Packager : CentOS Buildsys <bugs@centos.org>
Vendor : CentOS
URL : https://www.mozilla.org/firefox/
Summary : Mozilla Firefox Web browser
Description :
Mozilla Firefox is an open-source web browser, designed for standards
compliance, performance and portability.
[root@le-zh-t /]# rpm -ql firefox
[root@le-zh-t /]# rpm -qf /etc/passwd
setup-2.12.2-6.el8.noarch
-
卸载rpm 包
- 语法:
rpm -e rpm包的名称 - 例:
删除Firefox软件包:rpm -e firefox - 注意:如果其他软件依赖于要卸载的软件包,卸载后会产生错误信息
- 语法:
-
yum
- 介绍:Yum是一个shell前端软件包管理器。基于rpm包管理,能过从指定的服务器自动下载rpm包并安装,可以自动处理依赖关系,并且一次安装所有的依赖的软件包
- 基本指令:
查询yum服务器是否有需要安装的软件 :yum list | grep xxx软件列表
安装指定的yum包:yum install xxx
[root@le-zh-t ~]# yum list | grep firefox
firefox.x86_64 78.9.0-1.el8_3 @AppStream
firefox.x86_64 78.12.0-2.el8_4 appstream
二十八,shell 编程
- linux运维工程师在进行服务器集群管理时,需要编写shell来进行服务器管理
- 对javaee和python程序员来说,需要编写shell脚本进行程序或服务器的维护,比如编写一个定时备份数据库的脚本
- 对大数据程序员来说,需要编写shell程序来管理集群
shell是什么
- 是一个命令行解释器,他位用户提供了一个Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell 来启动,挂起,停止甚至编写一些程序
shell 脚本的执行方式
-
脚本格式要求
- 脚本以#!/bin/bash 开头
- 脚本需要有可执行权限
-
脚本的常用执行方式
- 输入脚本的绝对路径或相对路径(要有脚本执行的权限)
- sh 脚本 (不用权限,可直接执行)
[root@le-zh-t shcode]# ./hello.sh
hello world
[root@le-zh-t shcode]# /root/shcode/hello.sh
hello world
[root@le-zh-t shcode]# sh hello.sh
hello world
shell的变量
- shell 变量的介绍
- Linux shell 中的变量分为,系统变量和用户自定义变量
- 系统变量: H O M E , HOME, HOME,SHELL,$USER等
- 显示当前shell 中所有的变量:set
-
shell 变量的定义
- 定义变量:变量名=值
- 撤销变量: unset 变量
- 声明静态变量:
二十七,linux 日志
-
/var/log/目录就是系统日志文件的保存位置。
-
日志文件 说明 /var/log/boot.log 系统启动日志 /var/log/cron 记录与系统定时任务相关的日志 /var/log/lastlog 记录所有用户最后一次登录时间的日志,是2进制文件,要是用lastlog查看 /var/log/maillog 记录邮件信息的日志 /var/log/message 记录系统重要消息的日志,系统出现问题首先要坚持这个日志文件 /var/log/secure 记录验证和授权方面的信息只要设计账户和密码的程序都会记录,比如系统的登录,ssh登录,su切换用户,sudo授权 /var/log/ulmp 记录当前已经登录的用户信息,会随着用户的登录和注销而变化,不能用vi查看,使用w,who,user,
日志管理服务 rsyslogd
- 查询linux中的rsyslogd 服务是否启动。
[root@le-zh-t ~]# ps aux | grep "rsyslog" | grep -v "grep"
root 1158 0.0 0.7 215336 6240 ? Ssl 16:20 0:00 /usr/sbin/rsyslogd -n
- 查询rsyslog的自启动状态
[root@le-zh-t ~]# systemctl list-unit-files | grep "rsyslog"
rsyslog.service enabled
日志类型 | 说明 |
---|---|
auth | pam 产生的日志 |
authpriv | ssh,ftp等登录信息的验证信息 |
corn | 时间和任务相关 |
kern | 内核 |
lpr | 打印 |
邮件 | |
mark(syslog)-rsyslog | 服务内部的信息,时间标识 |
news | 新闻组 |
user | 用户程序产生的而相关信息 |
uucp | Unix to nuix copy主机街之间的相关的通信 |
local 1-7 | 自定义的日志设备 |
日志级别 | 说明 |
---|---|
debug | 有调试信息的,日志通信最多 |
info | 一般信息日志,最常用 |
notice | 最具有重要性的普通条件的信息 |
warning | 警告级别 |
err | 错误级别,阻止某个功能或者模块不能正常工作的信息 |
crit | 严重级别,阻止整个系统或者整个软件不能正常工作的信息 |
alert | 需要立即修改的信息 |
emerg | 内核崩溃等重要信息 |
none | 什么都不记录 |
注意:从上到下,级别从低到高,记录信息越来越少
- 查看/var/log/secure 日志,
[root@le-zh-t log]# cat secure
Aug 11 18:07:09 le-zh-t sshd[3591]: pam_unix(sshd:session): session closed for user root
Aug 11 18:07:24 le-zh-t unix_chkpwd[5874]: password check failed for user (root)
Aug 11 18:07:24 le-zh-t sshd[5864]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.159.1 user=root
Aug 11 18:07:27 le-zh-t sshd[5864]: Failed password for root from 192.168.159.1 port 3616 ssh2
Aug 11 18:07:40 le-zh-t sshd[5864]: Accepted password for root from 192.168.159.1 port 3616 ssh2
Aug 11 18:07:40 le-zh-t systemd[5879]: pam_unix(systemd-user:session): session opened for user root by (uid=0)
Aug 11 18:07:40 le-zh-t sshd[5864]: pam_unix(sshd:session): session opened for user root by (uid=0)
时间 服务器主机名 产生事件的服务器名或程序 说明
- 介绍:把旧的日志文件移动并改名,同时建立新的日志文件,旧的日志文件超出保存的范围后就会删除
- 命名:使用logrotate进行日志轮替管理,要想改变日志轮替文件名字,通过/etc/logrotate.cong配置文件中的“dateext”参数:
- 如果配置文件中有参数,那么日志就会按日期来作为日志文件的后缀,例如“secure20120304”,这样的日志文件名不会重叠,也就不与需要日志文件的改名,只需要指定保存日志的个数,删除多余的文件即可。
- 如果没有参数,日志文件就需要进行改名。但第一次进行日志轮替时,当前的secure会自动改名为“secure1”,让后新建“secure”日志,用来保存新的日志,当第二天进行日志轮换时,“secure1"会自动改名为”secure2“,当前的”secure”日志会自动改名为“secure1"然后也会新建“secure"日志,用来保存新的日志,以此类推。
- logrotate 配置文件
- /etc/logrotate.conf为logrotate的全局配置文件
sion): session closed for user root
Aug 11 18:07:24 le-zh-t unix_chkpwd[5874]: password check failed for user (root)
Aug 11 18:07:24 le-zh-t sshd[5864]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.159.1 user=root
Aug 11 18:07:27 le-zh-t sshd[5864]: Failed password for root from 192.168.159.1 port 3616 ssh2
Aug 11 18:07:40 le-zh-t sshd[5864]: Accepted password for root from 192.168.159.1 port 3616 ssh2
Aug 11 18:07:40 le-zh-t systemd[5879]: pam_unix(systemd-user:session): session opened for user root by (uid=0)
Aug 11 18:07:40 le-zh-t sshd[5864]: pam_unix(sshd:session): session opened for user root by (uid=0)
时间 服务器主机名 产生事件的服务器名或程序 说明
2. ##### 日志轮替
- 介绍:把旧的日志文件移动并改名,同时建立新的日志文件,旧的日志文件超出保存的范围后就会删除
- 命名:使用logrotate进行日志轮替管理,要想改变日志轮替文件名字,通过/etc/logrotate.cong配置文件中的“dateext”参数:
- 如果配置文件中有参数,那么日志就会按日期来作为日志文件的后缀,例如“secure20120304”,这样的日志文件名不会重叠,也就不与需要日志文件的改名,只需要指定保存日志的个数,删除多余的文件即可。
- 如果没有参数,日志文件就需要进行改名。但第一次进行日志轮替时,当前的secure会自动改名为“secure1”,让后新建“secure”日志,用来保存新的日志,当第二天进行日志轮换时,“secure1"会自动改名为”secure2“,当前的”secure”日志会自动改名为“secure1"然后也会新建“secure"日志,用来保存新的日志,以此类推。
- logrotate 配置文件
- [x] /etc/logrotate.conf为logrotate的全局配置文件
- [ ]