linux系统资源信息的获取
free
free -m #显示
free -h #显示容量单位
uname 系统和内核
uname []
选项和参数
-a : 所有系统相关的信息,包括习下面的数据会被列出来
-s :系统核心名称
-r :核心的版本 内核信息
-m :本系统的硬件名称 例如x86_64
-p :cpu类型,与-m类似
-i :硬件的平台
uptime查看系统启动时间于工作负载
[root@localhost ~]# uptime
10:55:45 up 1:58, 3 users, load average: 0.00, 0.01, 0.05
dmesg分析核心产生的讯息
dmesg
查看LinuxCPU信息
一般在/proc/cpuinfo中查看
关键字信息
processor 逻辑CPU标识
model name 真实CPU的型号信息 内核数
physical id 真实CPU和标识
cpu cores 真实CPU的内核数
查看物理cpu型号
grep 'model name' /proc/cpuinfo |uniq
查看物理cpu个数
grep 'physical id' /proc/cpuinfo|sort -u |wc -l 查看物理cpu个数 经过去重后统计出来数字
查看每颗物理cpu的核心数
grep 'cpu cores' /proc/cpuinfo |uniq
查看逻辑cpu个数
grep 'processor' /proc/cpuinfo |wc -l
查看cpu负载情况
top 关于cpu的好多信息都能看到
proc的文件及其含义
压缩和解压
现在计算机中系统都用byte来计量,事实上计算机中最小单位是bits,我们存放到电脑中是一堆01代码假设我们把1存进去了那么剩余好多0没存东西 但这些地方无法在存放1了 所以压缩技术就是把这些个没有存放数据的空间给提出来,使得占用空间变小
常见的压缩文件的扩展名
*.zip zip 程序压缩的文件;
*.gz gzip 程序压缩的文件;
*.bz2 bzip2 程序压缩的文件;
*.xz xz 程序压缩的文件;
*.tar tar 程序打包的数据,并没有压缩过;
*.tar.gz tar 程序打包的文件,其中并且经过 gzip 的压缩
*.tar.bz2 tar 程序打包的文件,其中并且经过 bzip2 的压缩
*.tar.xz tar 程序打包的文件,其中并且经过 xz 的压缩
常见的命令工具
gzip bzip2 xz 这些只能对文件进行压缩不能操作目录
tar 可以对一个到多个文件或者一个目录进行打包成一个单一的文件 但单独使用tar命令时,只打包不压缩
gzip
gzip 压缩解压单个文件
压缩文件后,自动删除源文件,自动添加.gz为扩展名
解压文件后,自动删除原压缩文件
gzip [-vd] [file]
选项和参数
-v 压缩时侯显示压缩比
-d 解压
压缩
[root@localhost tmp]# gzip -v services #压缩services这个文件并显示压缩比
services: 79.7% -- replaced with services.gz
[root@localhost tmp]# ll |grep "services"
-rw-r--r--. 1 root root 136088 7月 29 19:12 services.gz
[root@localhost tmp]# file services.gz
services.gz: gzip compressed data, was "services", from Unix, last modified: Mon Jul 29 19:12:25 2019
解压
[root@localhost tmp]# gzip -d services.gz
[root@localhost tmp]# ll |grep "services"
-rw-r--r--. 1 root root 670293 7月 29 19:12 services
[root@localhost tmp]# file services
services: C source, ASCII text
浏览压缩文件
zless services.gz
压缩文件并保留源文件
gzip -c services > services.gz
tar
用tar命令打包和解压文件时源文件都不会丢失
通用选项
-c :创建打包文件,可搭配 -v 来察看过程中被打包的文件名(filename)
-t :察看打包文件的内容含有哪些文件名,重点在察看“文件名”就是了;
-x :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开
特别留意的是, -c, -t, -x 不可同时出现在一串命令行中。
-v :在压缩/解压缩的过程中,将正在处理的文件名显示出来!
-f filename:-f 后面要立刻接要被处理的文件名!建议 -f 单独写一个选项啰!(比较不会忘记)
-C 目录 :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项
只打包 不压缩
创建
tar -cvf 创建后的文件名.tar 文档1 文档2
查看包内的文件列表
tar -tf 创建后的文件名.tar
解包到当前位置
tar -xf 创建后的文件名.tar
解包到指定位置
tar -xf 创建后的文件名.tar -C /tmp
打包后压缩
可以使用的选项
-z :通过 gzip 的支持进行压缩/解压缩:此时文件名最好为 *.tar.gz
-j :通过 bzip2 的支持进行压缩/解压缩:此时文件名最好为 *.tar.bz2
-J :通过 xz 的支持进行压缩/解压缩:此时文件名最好为 *.tar.xz
以上 3 个 选项互斥
特别的
-p(小写) :保留备份数据的原本权限与属性,常用于备份重要的配置文件
-P(大写) :保留绝对路径,亦即允许备份数据中含有根目录存在之意;
--exclude=FILE:在压缩的过程中,不要将 FILE 打包!
查看
查看压缩包的文件列表
tar -tf filename.tar.gz
解压
解压压缩包中的某一个文件
tar -xf filename.tar.gz 此压缩文件中的某个文件
解压到指定目录
tar -xf *.tar.gz -C 指定的目录
压缩的时候排除文档
打包压缩的时候可以排除一个或者多个文件或者目录
排除一个文件
tar -jcv -f t.tar.gz d1 d2 --exclude=s1
排除多个文件
tar -jcv -f t.tar.bz2 d1 d2 --exclude={s1,s2}
目录也可以
tar -jcv -f t.tar.bz2 d1 d2 --exclude=d1
压缩的时候加上日期
压缩文件为/opt/1.txt 文件 压缩到/tmp下
tar -czf /tmp/1.txt_$(date +%F).tar.gz /opt/1.txt
显示为 1.txt_2019-08-03.tar.gz
系统日志轮转
系统日志
记录系统活动信息有几个文件,他们分别记录了不同的信息
换句话说就是:记录系统在什么时候由哪个程序做了什么样的行为式,发生了何种的事件
日志的重要性
不止系统有日志,在系统上运行的很多应用软件都有自己日志目录。比如mysql默认的日志式/var/log/mysql.log
这些日志是我们首要的排除的首要入手点,假如系统或者服务出现了错误,要第一时间分析日志中的报错信息。而不是去网上搜索报错信息。因为大部分时候,一个报错信息,有可能会有多种情况导致,所以到结合自己的系统环境分析具体的情况
常用的系统日志
/var/log/messages
这个文件相当的重要的,几乎系统发生的错误讯息(或者式重要的信息)都会记录在这个文件中;如果系统发生莫名的错误时,这个文件时应该首先查询的
/var/log/secure
基本上,只要牵涉到“需要输入账号密码”的软件,那么登录时(不管登录正确或错误)都会被记录在此文件中。su sudo等程序、还有网络连线的ssh,telnet等程序,登陆信息都会被记载在这里
/var/log/boot.log
开机的时候系统核心会去侦测与启动硬件,接下来开始各种核心支持的功能启动等。这些流程都会记录在 /var/log/boot.log 里面。只保留本次的开机信息。
/var/log/cron
记录 crontab 调度有没有实际被进行? 进行过程有没有发生错误? /etc/crontab 是否配置正确?计划日志
/var/log/dmesg
记录系统在开机的时候核心侦测过程所产生的各项信息
var/log/lastlog
可以记录系统上面所有的账号最近一次等了系统时的相关信息
var/log/maillog或/var/log/mail/*
记录邮件的往来信息,其实主要是记录postfix(smtp协定提供者)与dovect(pop3协定提供者)所产生的讯息。smtp是发信所使用的通讯协定,pop3则是收信使用的通讯协定。postfix与devecot则分别是两套达成通讯协定的软件
/var/log/wtmp, /var/log/faillog
这两个文件可以记录正确登陆系统者的帐号信息 (wtmp) 与错误登陆时所使用的帐号信息 (faillog)
centos使用rsyslog.service这个服务来统一管理这些系统日志文件
日志服务和配置文件
查看日志服务的状态
systemctl status rsyslog.service
rsyslog.service 的配置文件
在/etc/rsyslog.conf下
配置文件用于设置
(1)什么服务 (2)的什么级别的信息 (3)需要被记录在哪里(设备或文件)
*.info;mail.none;authpriv.none;cron.none /var/log/messages
表示所有服务端 info 级别的信息,邮件的 none 级别的信息,登录认证的 none 基本的信息和计划任务的 none 基本的信息都记录到 /var/log/messages 文件中。
linux核心的syslog的服务类型
都是系统级别的 普通用户无法改变
linux下syslog定义的日志级别
自定义日志轮转
在目录下编辑一个文件
[root@localhost ~]# vim /var/log/shark1.log
/var/log/shark1.log {
monthly >== 每月一次轮转
size=10M >== 文件大小大于 10M 时, 也开始轮转
rotate 2 >== 日志文件保留 2 个
compress >== 对旧的日志文件进行压缩
sharedscripts >== 轮转之前需要先被执行命令
prerotate
/usr/bin/chattr -a /var/log/shark1.log >==去掉特殊属性
endscript
sharedscripts >== 轮转之后需要被执行的命令
postrotate
/usr/bin/chattr +a /var/log/shark1.log >== 特殊属性,文件内容只能增加不能删除或者修改
endscript
}
可用logrotate 命令测试
logrotate -vf /etc/logrotate.conf
-v 显示轮转的详情
-f 立刻进行一次轮转