文章目录
一. 文件权限管理
chgrp -R <组名> <文件名> # 修改文件所在组(-R递归)
chmod u=rwx,g=rx,o=x <文件/目录> # 修改权限
chmod a+r+w <文件> # 添加权限(a代表所有用户)
chmod -R 751 <文件> # 修改权限(r-4,w-2,x-1)(-R递归)
chown -R <用户> <文件> # 修改文件所有者(-R递归)
目录权限说明
目录x:可以 cd 进入
目录r:可以在目录下 ls
目录w:可以在目录中 touch rm
二. 定时任务
crond定时任务
crond 定时任务格式:
分 时 天 月 周 command
crontab -e # 编辑crontab定时任务
crontab -l # 查看当前定时任务
crontab -r # 删除当前用户所有的crontab任务
service crond restart # 重启任务调度
# 每隔10分钟执行一次
*/10 * * * * [command]
# 每天8:00,12:00,16:00都执行一次
0 8,12,16 * * * [command]
# 每周一到周六5:00都执行一次
0 5 * * 1-6 [command]
# 每月1日和每星期一5:00都执行一次
0 5 1 * 1 [command]
at一次定时任务
at 一次定时任务格式:
at [参数] [时间]
at>[command]
<ctrl+D><ctrl+D>
时间格式:
1.hh:mm
2.midnight noon teatime(下午4点)
3.12小时制:8am, 4pm
4.HH:MM yyyy-mm-dd
5.相对计时法:now + count time-units(时间单元可以是:minutes hours days weeks)
6.today tomorrow
at 5:00 + 2 days # 两天后五点执行
at 5:00 tomorrow # 明天五点执行
atq # 查看定时任务
atrm 5 # 删除编号为5的定时任务
三. 磁盘分区与挂载
Linux磁盘分区机制:磁盘分区挂载到路径
硬盘说明:
sdx:SCSI硬盘
sda:第一块
sdb:第二块
sdc:第三块
经典案例:磁盘挂载
1.添加一块磁盘
2.磁盘分区
fdisk /dev/sdb
m:帮助 n:添加分区 w:保存分区退出 q:不保存退出
3.格式化分区
mkfs -t ext4 /dev/sdb1
4.磁盘分区挂载
mount /dev/sdb1 /newdisk
# 挂载
umount /dev/sdb1
或umount /newdisk
# 卸载
5.磁盘分区永久挂载
修改/etc/fstab配置文件
mount -a
# 立即生效
磁盘情况查询
lsblk # 查看磁盘挂载
lsblk -f # 查看磁盘挂载详细信息
df -h # 查看整体磁盘使用情况
df -h <目录> # 查看当前路径所在分区使用情况
du -sh <目录> # 目录占用大小汇总
du -h --max-depth=1 <目录> # 查询深度为1的各文件使用情况
磁盘实用指令
# 统计文件数
ll |grep "^-" |wc -l
# 统计目录数
ll |grep "^d" |wc -l
# 统计文件数,包括子目录
ll -R |grep "^-" |wc -l
# 统计目录数,包括子目录
ll -R |grep "^d" |wc -l
# 以树状显示目录结构
tree <目录名>
四. 网络配置
ipconfig # 查看网络适配器信息
ping <ip/域名/主机名> # 检查网络连通
配置静态IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static" # 使用静态IP地址,默认为dhcp
IPADDR="192.168.241.100" # 设置的静态IP地址
NETMASK="255.255.255.0" # 子网掩码
GATEWAY="192.168.241.2" # 网关地址
DNS1="192.168.241.2" # DNS服务器
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="95b614cd-79b0-4755-b08d-99f1cca7271b"
DEVICE="ens33"
ONBOOT="yes" #是否开机启用
配置完成后
systemctl restart network
或service network restart
hostname和hosts
hostname
# 查看主机名
vim /etc/hostname
# 配置主机名
vim /etc/hosts
# 配置hosts映射关系
域名解析过程
1.浏览器缓存
2.DNS缓存
ipconfig /displaydns
# windows 查看DNS缓存
ipconfig /flushdns
# windows 手动清除DNS缓存
3.hosts
4.DNS服务器
网络监控
netstat -anp
Local Address: 本地进程通信点
Foreion Address: 外部进程通信点
五.进程管理
查看进程
ps -aux
USER:用户名称
PID:进程号
%CPU:进程CPU占比
%MEM:进程物理内存占比
VSZ:进程占用虚拟内存大小(单位:KB)
RSS:进程占用物理内存大小(单位:KB)
TT:终端名称
STAT:进程状态
(S睡眠,s会话先导进程,N比普通优先级低,R正在运行,D短期等待,Z僵尸,T挂起)
START:进程启动时间
TIME:CPU时间(进程使用CPU总时间)
COMMAND:启动进程所用的命令参数
ps -ef
UID:用户ID
PID:进程ID
PPID:父进程ID
c:c越大,CPU密集型运算,执行优先级会降低。c越小,I/O密集型运算,执行优先级会提高。
STIME:进程启动时间
TTY:完整终端名称
TIME:CPU时间
CMD:启动进程所用的命令参数
pstree
# 显示进程树-p 显示进程号
-u 显示用户
终止进程
kill [PID]
# -9 强制
killall [进程名称]
# 终止非法登陆用户
ps -aux |grep sshd
kill 11421
# 终止远程登陆服务
ps -aux |grep sshd
kill 10748 # 重新启动/bin/systemctl start sshd.service
# 终止多个gedit
kill all gedit
# 强制杀掉一个终端
ps -aux |grep bash
kill -9 10487
进程监控
top
# -d 刷新时间 -i 不显示空闲僵尸进程 -P 通过PID监控指定进程
交互操作:
P:按照CPU占比进行排序
M:按照MEM占比进行排序
N:按照PID排序
q:退出
u:监控指定用户
k:终止指定进程
六.服务管理
服务:后台运行的进程,又称为守护进程
1.service [服务名] [start|stop|restart|reload|status]
2.service指令管理的服务在/etc/init.d
查看
3.若远程关闭network服务,会导致无法远程登陆
服务运行级别
开机流程说明
开机->BIOS->/boot->systemd进程1->运行级别->运行级对应的服务
# 查看所有服务在不同运行级别启动情况
chkconfig --list
# 查看指定服务在不同运行级别启动情况
chkconfig [服务名] --list
# 修改指定服务在不同运行级别启动情况
chkconfig --level 5 [服务名] on/off
systemctl
systemctl [start|stop|restart|status] [服务名]
systemctl list-unit-file # 查看服务开启启动状态
systenctl is-enabled [服务名] # 查询某个服务是否是开机启动的
systemctl enable [服务名] # 设置服务开机启动
systemctl disable [服务名] # 关闭服务开机启动
防火墙firewall
防火墙:控制端口是否开放
telnet <ip> <port> # 测试端口是否连通
netstat -anp # 查询端口/协议
firewall-cmd --list-ports # 查看已开放端口
firewall-cmd --permanent --query-port=端口/协议 # 查询端口是否开放
firewall-cmd --permanent --add-port=端口/协议 # 开放端口
firewall-cmd --permanent --remove-port=端口/协议 # 关闭端口
firewall-cmd --reload # 重启防火墙,使配置立即生效
七. RPM管理
rpm:软件包管理工具(redhat、suse、centos)
rpm -aq | grep firefox # 查询已安装rpm列表
rpm -q firefox # 查询firefox是否已安装
rpm -qi firefox # 查询软件包详细信息
rpm -ql firefox # 查询软件安装完成后生成了哪些文件
rpm -qf /etc/passwd # 查询文件归属于哪个软件包
rpm -e firefox # 卸载firefox
rpm -e --nodeps firefox # 强制卸载firefox
rpm -ivh [rpm包全路径名称] # 安装软件包
yum:软件包管理器(Fedora、RedHat、CentOS)
yum list |grep firefox # 查询yum服务器是否有firefox软件包
yum install firefox.x86_64 # 安装firefox
八. 日志管理
系统常用日志
日志管理服务:rsyslogd守护进程
日志格式:时间 用户 进程 日志内容
日志 | 内容 |
---|---|
/var/log/boot.log | 系统启动日志 |
/var/log/cron | crontab定时任务相关日志 |
/var/log/lastlog | 记录所有用户最有一次登录时间,实用lastlog命令查看 |
/var/log/maillog | 邮件信息日志 |
/var/log/message | 系统重要信息日志,系统出现问题首先检查 |
/var/log/secure | 认证授权信息日志,如ssh登录、用户切换、sudo授权、修改密码等 |
var/tun/ulmp | 记录当前已登录用户信息,使用who等命令查看 |
日志配置文件
/etc/rsyslog.conf
编辑文件格式:*.* 存放日志
日志类型 | 来源 |
---|---|
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 | 什么都不记录 |
日志转储
/etc/logrotate.conf
或/etc/logrotate.d/
日志轮替机制:依赖crond(如cron每天会执行/etc/cron.daily/logrotate)
/var/log/zyt.log
{
missingok
daily
copytruncate
rotate 7
notifempty
}
参数 | 说明 |
---|---|
daily | 每天 |
weekly | 每周 |
monthly | 每月 |
rotate 数字 | 保留的日志文件个数,0表示没有备份 |
compress | 日志轮替时,旧的日志进行压缩 |
create mode owner group | 建立新日志,指定权限,所有者,属主 |
mail address | 日志轮替时,发送邮件 |
missingok | 如果日志不存在,忽略日志的警告信息 |
notifempty | 如果日志文件为空,不进行轮替 |
minisize 大小 | 日志转储的最小值,日志一定要到达这个最小值才会轮替 |
size 大小 | 日志只有大于指定大小才进行日志轮替,而不是按照时间 |
dateext | 使用日期作为日志轮替文件的后缀 |
sharedscripts | 在此关键字之后的脚本只执行一次 |
preotate/endscript | 在日志轮替之前执行脚本命令 |
postrotate/endscript | 在日志轮替之后执行脚本命令 |
copytruncate | 把原始文件拷贝一份重命名,然后把原始文件清空 |
内存日志
内存日志:内存中的日志,尚未写盘,动态变化,重启会丢失
journalctl # 查看所有内存日志
journalctl -n 3 # 查看最近3条
journalctl --since 19:00 --until 19:10:10 # 查看指定时间段日志
journalctl -p err # 报错日志
journalctl -o verbose # 日志详细内容
journalctl _PID=1245 _COMM=sshd # 查询包含这些参数的日志
九.备份恢复
dump 备份
dump [参数] [目录/文件]
参数:
-0123456789
备份层级,0为完整备份
-f
指定备份后文件名
-j
调用bzlib库压缩备份文件
-T
指定开始备份的时间日期
-u
备份完毕后,在/etc/dumpdares中记录备份的文件系统,层级,日期和时间等
-W
显示需要备份的文件及其最后一次备份的层级,时间,日期
-w
与-W类似,仅显示需要备份的文件
注意:分区备份支持增量备份、文件或目录不支持
# 完整备份分区/boot
dump -0uj -f /opt/boot.bak0.bz2 /boot
# 增量备份分区/boot
dump -1uj -f /opt/boot.bak1.bz2 /boot
# 备份目录/etc
dump -0j -f /opt/etc.bak.bz2 /etc
# 显示备份文件最后字词备份的层级,时间,日期
dump -W
dump -w
restore 恢复
restore [模式选项] [选项]
-C
对比模式
-i
交互模式
-r
还原模式
-t
查看模式
-f
指定备份数据文件
restore -C -f /opt/boot.bak1.bz2
restore -t -f /opt/boot.bak1.bz2
# 还原模式,若增量备份,按顺序恢复
restore -r -f /opt/boot.bak0.bz2
restore -r -f /opt/boot.bak1.bz2
十.可视化运维
webmin
wget http://download.webmin.com/download/yum/webmin-1.700-1.noarch.rpm
bt(宝塔)
wget -O install.sh http://download.bt.cn/install/install_6.0.sh
chmod u+x install.sh
./install.sh