Linux系统管理 1 Day 2014.5.23
su -name 切换用户
passwd 密码 更改密码
gnome-terminal 伪CLI 桌面终端程序
1、查看内核版本uname -r
2、查看红帽系统版本cat /etc/redhat-rdlease
3、查看LINUX标准分发版信息 lsb_release
4、查看网卡的IP,MAX ifconfig
ifconfig eth 10.0.0.10/24
5、查看主机名 hostname
改主机名 hostname hname 名字
6、清屏 clear ctrl+L
7、存放正在运行的CPU信息 cat /proc/cpuinfo
processor:CPU核心编号
physical id:物理CPU的编号
model name 品牌、型号、频率
cpu MHz 工作频率
cache size 缓存大小
8、存放正在运行的CPU信息 cat /proc/meminfo
Memtotal 物理内存的总大小
Memfree 空闲物理内存
Swaptotal 交换空间的总大小
Swapfree 空闲的交换空间大小
9、关机操作 shutdown -h now
shutdown -h +15 'host will be down!!'
poweroff
init 0
10、重启操作 shutdown -r now
reboot
init 6
date 系统时间
cal查看日历 cal 2014
bc计算器
LS查看目录列表 list
CD切换目录
PWD查看当前在哪个工作目录
Linux系统管理 2 Day 2014.5.26
shell:贝壳、外壳---解释器
ls /root -lh 查看文件
ls -lh long 长类型,human 人性化显示文件大小
ls -ld 查看目录
Tab 自动补齐 连按两下,显示可用命令
Ctrl+L 清屏
Ctrl+U 删除本行
Help 命令名 内部命令帮助
命令名 --Help 外部命令帮助
Type 命令名 查看命令路径,是否是内部命令
man 命令名 帮助文档
man ls
gg 回到帮助文档第一行开头
G 跳到帮助文档最后一行开头
q 退出
exit 退出
/word 在帮助文档里查找word关键
cd /root 进入目录
pwd 查看当前目录
ls -lh 查看当前目录文件
ln--link
ln -s 原文件... 链接文件路径
ln -s /usr/sbin/system-config-network-tui \ /sbin/netconfg
mkdir -p 创建目录,-p可连续
touch 创建文件
rm remove 删除文件,目录
-r 删除连续目录
-f 直接删除
mv move 移动文件或目录
mv 选项 原文件 目标路径
mv ls-man.txt desktop/
mv ip.txt ipnew.txt 改名
[root@me name]# alias 定义快捷命令名(命令别名)
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
通配符?代表一个字符 *代表连续的几个字符
{q,e,a,b}[0-9]
du -sh /boot/ /etc/pki/ 评估目录或文件大小
-a 统讲所有文件
-s 汇总
-h 人性化显示
重定向(命令输出到文件):命令 >/路径/文件名
命令 >>/路径/文件名 追加
cp-copy
cp 选项 原文件 目标路径
-r 递归复制整个目录
-f 强制覆盖,不提示(与-i相对)
-p 保持原文件的属性不变
cp -rf /boot/grub/ /etc/host.conf desktop/
程序和文件检索
外部命令一般存在root/bin,/sbin,/usr/bin,/usr/sbin目录
ehco $PATH 查看PATH 环境变量
which ifconfig 查找ifconfig可执行程序
搜索命令字的顺序:别名-内部命令-外部命令
/路径/命令
建立索引库
updatedb
locate 关键字 -i ignore 忽略大小写
find 查找文件 -a 默认 -o or
find / -type f 文件 l链接文件 b 块设备文件 d 目录 c 字符设备文件
/root -name "rel*"
/boot -size +2M
/sbin -mtime +30 30天之前/内 m=modify修改
-user
find / -size +2M -type f -name "a*" -mtime +7
find / -size +2M -type f -name "a*" -mtime +7 -exec ls -lh {} \;
3DAY linux系统管理 2014.5.27
一 文件阅读编辑
文件内容操作
cat--Concatenate
格式 cat 选项 文件名
常用命令选项 -n 显示行号
例 cat -n /proc/cpuinfo
分页阅读文件
1、more
more 选项 文件名
2、less 可向前翻页
less 选项 文件名
?向前 /向后
less /proc/cpuinfo >cup.txt|less
截取文件首/尾部
3head、tail命令
格式 head -n 数字 文件名
head cpu.txt 默认十行
head -n 5 cpu.txt 前5行
tail -5 cpu.txt 后5行
文件的字数统计 WC
wc -work count
格式 wc 选项 文件名
常用命令选项
wc ipadd.txt install.log
cat /etc/passwd |wc -l
二 检索文本内容
grep工具
grep "查找条件" 文件名
-i 查找时忽略大小写
-v 反转查找,输出不符合查找条件的
-color
^... 开头
...$ 结尾
^$ 空行
grep "inet addr" ipadd.txt
gerp -vE "^#|^$" int.txt
egerp=gerp -E
ifconfig | grep "inet addr"
压缩和归档
归档:多个文件整理成一个文件
压缩:减少磁盘占有用空间,压缩格式
.zip zip,unzip 归档+压缩
.gz gzip,gunzip 压缩
.bz2 bzip2,bunzip2 压缩
.tar tar 归档
zip 压缩包 压缩文件
zip gztest.zip gztest.txt
unzip -d 目标文件 压缩包
gzip [-9] 文件名
gzip -d 文件名
bzip2
tar
格式 tar 选项 归档文件 原文件/目录
格式 tar 选项 归档文件 [-C 目标文件]
c创建
x解开
C角包时指定释放的目标文件夹
f表示使用归档文件
z调 用gzip执行压缩
j调用bzip2
t查看
v显示过程
tar -zcf boot.tar.gz /boot/ 制作.tar.gz包文件
释放.tar.gz包文件
tar: zcf:无法 open: 没有那个文件或目录
tar: 错误不可恢复:现在退出
tar: Child returned status 2
tar: zxf:zip解压缩
tar: cf:tar归档
tar: jcf:bzip2归档压缩
tar: jxf:bzip2解压缩
tar: jtf:查看bzip2文件
tar: jxvf:解压bzip2,显示过程
tar: cf:归档中找不到
tar: xf:归档中找不到
tar -zxf boot.tar.gz -C/tmp/
tar -ztf boot.tar.gz 查看
vi Virsual Interface
Linux中默认的文本编辑器
vim ViImproved
vi编辑器的增强版本
优点:语法
:q!不保存退出 :x =:wq保存退出 :w 保存
yy 复制一行 #yy复制某行 3yy
dd 删除一行 #dd删除某行 3dd
p P 粘贴
:w write另存为
:r read插入一个文件
:e edit打开一个文件
:s /old/new
:s /old/new/g 当行所有的 old
:n,m s/old/new/g 替换第n-m行所有的old
:% s/old/new/g 替换所有的old
:set nu 显示行号
~/.vimrc 用户VIM配置文件
set nu
set ai
set tabstop=4
viminfo VIM编辑历史记录文件
.swp VIM编辑交换文件
2014.5.28 4 Day
Linux下的光盘设备
/dev/hdc、 /dev/sr0
/dev/cdrom
ls -l /dev/cdrom
mount 挂载 /mnt/dvd /mnt/cd
mount 设备名 挂载点
umount 设备名(或挂载点)
系统自动挂载:
可直接访问 /misc/cd --触发挂载
手动去挂载: [root@localhost ~]# mount /dev/sr0 /root/cdrom
rpm安装包
/var/
一、查询已安装的RPm软件包
rpm -q 子选项 软件名称
rpmquery
常用子选项
-a 列出已安装的所有软件包
-i 查看指定软件的详细信息
-l 查看指定软件的文件安装清单
-c -d 仅列出清单中的配置/文档文件
rpm -q bash #查询bash是否安装
rpm -qa 列出所有包
rpm -ql firefox
rpm -qf /usr/bin/vim 反向查找
二、 查询RPM软件包
格式 rpm -q 子选项 RPM包文件
rpmquery
常用子选项
-pi
-pl
三、安装、升级RPM包
格式 rpm -i RPM包文件 install 安装
rpm -U RPM包文件 upgrade 升级
rpm -F RPM包文件 freshen 更新
-v 显示细节信息,过程
-h 显示安装进度 hash
--froce 覆盖安装
rpm -ivh --force
四、卸载RPM软件包
rpm -e
--nodeps 忽略依赖关系参
五、验证RPM包的完整性
检查哪些文件被改动,做了哪些改动
格式 rpm -V 软件名 已装
rpm -Vf 文件路径
rpm -Va
rpm -V bash 正常无输出
导入验证密钥
rpm --import 公钥文件
rpm --import /etc/pki/rpm-pgp/RPM-GPG-gpg-KEY-redhat-release
rpm -q -qi -ql -qpi -qpl -ivh
-e -V --import
YUM概述
YUm yellowdog updater Modified
所有软件包由集中的YUM软件仓库提供
自动解决包依赖关系
本地目录 file://
FTP、HTTP服务 ftp:// http://
yum的配置文件
/etc/yum.conf 基本设置
/etc/yum.repos.d/*.repo 仓库配置
/var/log/yun.log 日志文件
createrepo 安装包
createrepo 目录 在本目录下创建repodata/repomd.xml文件
.repo基本配置项
vim /etc/yum.repos.d/server.repo
[rhel5]
name=red hat enterprise linux 5.9 server
baseurl=file:///var/rhel5 ftp//:
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm
yum list YUM库查看
yum clean all 清空yum缓存
常用指令
list 查看软件包列表
search 查看软件包名称或者描述重要关键字
info 查看软件包信息
update 更新
remove 卸载指定软件包
provides 反向查安装包
-
grouplist
groupinfo
groupinstall
groupremove
groupupdate
LANG= 设置语言环境EN
LANG=
2014.5.29 5Day
一、源码包编译安装
准备开发环境 gcc gcc-c++ make g++
1、tar解压 tar zxf *.tar.gz -C /root/http
2、配置 ./configure --help |less
./configure --prefix=/usr/local/http
3、编译
ls Makefile
make
4、安装 make install
3.4步可合写成make && make install
默认安装到 /user/local/{bin,sbin,etc,man,share}
用户帐号管理-增删改查
本地账户的数据文件
/etc/passwd /etc/shadow
/etc/group /etc/gshadow
useradd userdel usermod id
passwd
useradd 选项 用户名
常用命令
-u 指定UID标记号
-d 指定宿主目录,缺省为/home/用户名 useradd -d /opt/home02 stu02
-e 指定账号失效时间
-g 指定所属基本组 GID
-G 指定所属附加组 GID
-M 不为用户建立宿主目录
-s 指定用户的登录Shell 三种 ksh bssh tcsh
useradd -s /bin/tcsh stu03
grep stu03 /etc/passwd
usermod
usermod -d 2014-05-20 nsd04 nsd04用户2014.5.20过期
-L lock 锁定用户
-U unlock 解锁
-l 更改用户名
-u 指定UID标记号
-d 指定宿主目录,缺省为/home/用户名 useradd -d /opt/home02 stu02
-e 指定账号失效时间
-g 指定所属基本组 GID
-G 指定所属附加组 GID
passwd
常用参数命令
-d 清空密码
-l lock 锁定用户
-S status 查看用户壮态,是否被锁定
-u unlock 解锁
--stdin 从标准输入取密码 |管道
tail -5 /etc/passwd
echo 123456|passwd --stdin user1
grep sys01 /etc/shadow
ls /usr/local/http/bin/
chage密码时效控制
chage -l nsd04 列出密码有效信息
chage -E 2014-06-30 nsd04 指定账号过期时 间
chage -E -1 不过期
chage -d 0 nsd04 强制下次登录时更换密码 复杂性(最近一次密码修改时间)
chage -I 指定当密码失效后多少天锁定账号
chage -m 指定密码的最小天数
chage -M 指定密码的最大天数
[root@localhost home]# date 052914292014
2014年 05月 29日 星期四 14:29:00 CST
userdel -r nsd04 删除用户加文件
userdel nsd04 删除用户
id root 杳看创建用户配置信息
/etc/login.defs
/etc/default/useradd
/etc/skel 新建用户时模板目录复制
用户配置文件
.bash_profile 每次登录时执行
.bashrc 每次进入新的Bash环境时执行
.bash_logout每次退出时执行
ex PATH=$PATH:/root/bin
全局配置文件
/etc/bashrc
/etc/profile
alias 别名设置
export PATH=$PATH:/usr/local/http/bin
echo Welcome $USER
rpm -qa |wc -l
yum list installed |wc -l
echo Total $(rpm -qa |wc -l) packages
组账号管理 增删改查
/etc/group
/etc/gshadow保存组帐号管理作息
groupadd stugrp1 创建组stugrp1
-g id
groupmod 组账号属性修改
-g 组号
-n 新名 原名
gpasswd 组成员管理
-A 添加组管理员
-a 添加组成员,每次只能加一个
-d 删除组成员,每次只能删一个
-M 添加成员,逗号分隔
groupdel 删除组
查看组
id -Gn root = groups root
grep stugrp /etc/group /etc/gshadow
gpasswd -a stu04 stugrp1
chown -R gugong:gugong /home/gugong
chown -r gugong:mail /var/spool/mail/gugongp
2014.5.30
权限和归属
权限
读取 -read r
写入 -write w
可执行 -excute x
归属关系
所有者 -user u
所属组 -group g
其他用户 --other o
所有用户 -all a
chmod a=x myprog.sh
chmod [ugoa] [+-=][rwx] 文件
chmod [nnn] 文件 rwxrwxrwx=421401401
chmod 755 文件 700
chmod -R u-rwx,go=rx /nsd1404 强制继承 递归修改权限
chmod --reference= 以指定文件/目录做为模板
mkdir -m 750 /testdir2 自定入创建文件夹访问权限
umask 默认文件夹访问权限 0022 777-022=755
默认文件访问权限 0022 777-022=755=644
umask 027 750
umask -s 文件默认无X 可执行权限
设置归属关系
chown 属主:属组 文件
-R
chown stu14:sul14 /home/sul14
ghrep
附件权限控制
SUID SGID
chmod 4755 文件名 SUID 共享权限
2755 SGID 继承 属组
1755 T SID 粘滞位
粘滞位:共享里的文件自已的文件自己管理,别人无权
ACL访问控制
df -hT /etc 杳看文件所在分区,所在分区类型,容量,可用,挂载点
tune2fs 调整EXT2支持环境
查看支持环境
tune2fs -l /dev/sda2 |less
tune2fs -l /dev/sda2 | grep acl
rpm -qi acl
getfacl /boot 查看
setfacl 选项 u:用户名:权限 文件
setfacl 选项 g:组名:权限 文件
-m 定义一条ACL策略
-x 清除指定的ACl策略
-b 清除所有已设置的ACK策略
-R递归 已有文件有效
-d default (当前文件夹)添加默认ACl 视为继承
后建立文件有效
setfacl -d -m u:用户名:权限 目录 只用于继承 不用于本文件夹
setfacl -m u:用户名:权限 目录
serfacl -m u:zhangsan:- /tarena/ 用户zhangsan禁止访问/tarena
serfacl -x u:zhangsan /tarena 删除用户zhangsan的控制(ALC策略)
serfacl -d /tarena -b 清除所有已设置的ACK策略
serfacl -m u:m :- /tarena/
2014.06.03
硬盘设备 分区 格式化 挂载 读写文档
kudzu fdisk mkfs mount mkdir touch
每个扇区512字节 每个磁道63个扇区
每个柱面8M
查看磁盘分区 fdisk
格式 fdisk -l 磁盘名
fdisk /dev/sdb
n 新建分区
d 删除分区
m 帮助
l 查看公区格式
partprobe /dev/sdb 更新分区表
格式化
mkfs.ext3 -T largefile /dev/sdb1
mkfs -t ext3 /dev/sdb1 格式化/dev/sdb6格式ext3
mkfs.ext3 /dev/sdb3 格式化/dev/sdb6格式ext3
mkfs.vfat -f 32 /dev/sdb6 强制格式化/dev/sdb6格式fat32
rpm -ivh e4fsprogs
mkfs.ext4 /dev/sdb3
mkfs -t vfat /dev/sdb6
/misc/cd
mkdir /mnt/part1
mkdir /mnt/part6
mount /dev/sdb1 /mnt/part1 挂载
mount |gerp part 查看挂载
ls /mnt/part1
dd if=/dev/zero of=test.data bs=1M count=1000
从/dev/zero读文件到/test.date 1M每次,1000次
df -hT /home 查看/home所在分区 挂载点
swapon -s 查看交换分区内存
mkswap /dev/sdb5 格式化交换公区/dev/sdb5
swapon /dev/sdb5 启用/dev/sdb5交换分区
swapoff /dev/sdb5 关闭/dev/sdb5交换分区
free 查看内存
开机自动挂载
配置文件 /etc/fstab
cp /etc/fstab /etc/fstabold
分区命名
e2label /dev/sda1
e2label 分区 “卷标名”
mount LABEL="/boot" /mnt/part1
mount -l "/boot" /mnt/part1
mkswap -l 卷标名 交换分区
查看设备UUID
blkid 设备名
mount -U"UUID" 挂载点
tune2fs -l /dev/sdb1 |less
inode count 最大文件数
mount
-pri swap 优先级
-L
-U
-a
-o 指定挂载参数 ro/wr acl/noacl exec/noexec suid/nosuid
remount defaults async nouser auto exec rw dev
mount -o remount,noexec /home
mount -o loop /misc/cd/p_w_picpaths/boot.iso /mnt/sos
/mnt/hgfs/
autofs
service autofs status 重启
reload 重读
start 开启
stop 关闭
主配置文件/etc/auto.master 监控点目录 挂载配置文件的路径
挂载配置文件 /etc/auto.misc (由主配置文件决定)
访问点子目录 挂载参数 :设备名
parted 大容量分区工具
parted /dev/sdb print 查看磁盘分区
parted /dev/sdb 进入交互模式
mktable gpt GPT最大支持14EB
mkpart primary ext3 0 20G
mkpatr primary ext3 20G 40G
mkpatr primary ext3 40G 100%
quit 退出
mkfs.ext4 -T largefile /dev/sdc4
2014.6.4
功能 管理物理卷 管理卷组 管理逻辑卷
scan扫描 pvscan vgscan lvscan
create创建 pvcreate vgcreate lvcreate
display显示 pvdisplay vgdisplay lvdisplay
remove删除 pvremove vgremove lvremove
extend扩展 vgextend lvextend
reduce减少 vgreduce lvreduce
vgchange -s 1M 卷组名
partprobe 磁盘 更新分区表
pvcreate创建物理卷
格式: pvcreate 物理卷
vgcreate创建卷组
格式: vgcreate 卷组名 物理卷
vgdisplay查看卷组
格式: vgdisplay 卷组名
创建逻辑卷
lvcreate -L 16G -n lv-mbox myvg
ls /dev/myvg/lv-mbox
ls -l /dev/卷组名/逻辑卷名
逻辑卷链接文件 dev/mapper/myvg-lv--mbox
格式化逻辑卷mkfs.ext3 /dev/myvg/lv-mbox
扩展逻辑卷lvextend -L +8G /dev/myvg/lv-mbox
卷组扩展vgextend myvg /dev/sdb6
重新识别大小
resize2fs /dev/myvg/lv-mbox
df -hT
mdadm -C /dev/md0 -l5 -n4 /dev/sd[c-f] 创建RAID
l 类型 1 0 10 5
n 硬盘数
x 备份盘
mdadm -Q/-D RAID名 查看RAID
mdadm -S RAID名 解散陈列
mdadm -S dev/md0 删除陈列
mdadm -A /dev/md0 重组陈列
mdadm /dev/md0 -f /dev/sdf 记为故障
-r 删除
-a 添加
watch cat /proc/mdstat
监视
mdadm -vDs>/etc/mdadm.conf
正在运行的阵列,写入陈列配置文件
2014.06.05
Linux内核加载执行/sbin/init程序
/etc/inittab
init 0
init 1-6
cat::ctrlaltde.:/sbin/shutdown -t -r now
init q 重读配置文件
wait 等待执行完毕再继续
[1 -6]:2345:respawn:/sbin/mingetty tty[1 -6]
一旦进程被终止,立即重启该进程
/etc/rc.d/rc [0-6]
runlevel
/etc/rc.d/rc.sysinit脚本
由init进程调用执行
设置网络/时钟、加载文件系统等一系列工作
/etc/rc.d/rc.local
由rc脚本执行
开机自动启动
独立服务(脚本):/etc/init.d/*
service 服务名 start
/etc/init.d/服务名 stop
stop
restart reload
status 查看壮态
临时服务(配置):/etc/xinetd.d/*
rsync
配置xinetd临时服务rsync
vim /etc/xinetd.d/rsync
disable=no
service xinetd restart
配置rsync服务
vim /etc/rsync.conf
:::
[public]
path=/boot
客户机测试
rsync rsync://127.0.0.1 查看同步
public
rsync -rv rsync://127.0.0.1/public rtest
ls rtest/
自启服务控制
chkconfig --list
chkconfig --level 级别列表 服务名 on/off
chkconfig --level 35 bluetooth off
chkconfig
ntsysv --level
进程管理
查看
pstree processes tree
格式 pstree 选项 PID或用户名
-a 完整命令行
-u user
-p PID
ps processes snapshot进程快照
ps 选项
ps aux
R 正在运行
S 休眠
Z 僵尸状态
ps -elf
a
u
x
-e
-l 长格式
-f 以最完整的格式输出
停止
top交互式工具
k PID 杀死进程
pgrep 进程查询
pgrep -l vim
pgrep -l -U zhangsan
pgrep -l -t tty2
sleep 300 睡300秒
./cpuburn-in 10 10分钟
kill PID 杀死进程
pkill PID PID
killall sleep 进程名称
pkill slee 进程名称关键词
pkill -9 -U zhangsan 9最高级别
xkill 图形KILL杀死进程
调度
后台启动 在末尾添加&符号
ctrl+z组合键 挂起当前进程(暂停并转入后台)
jobs -l 查看后台任务
fg 后台任务恢复到前台
bg background激活后台被挂起的任务
cp /dev/cdrom mycd.iso&
dd if=/dev/cdrom of=mycd1.iso&
后台制作ISO镜像文件
ups
grep ^if /etc/rc.sysinit |head -5
gerp -A2 -m1 ^if /etc/rc.sysinit
-m1 只显示第一个搜索结果
-A2 显示搜索结果后2行
2014.06.06
定时任务 at
atq 查询
at -c 3 |tail 查看定时任务内容
atrm 删除任务
服务:atd /etc/init.d/atd
任务存放位置/var/spool/at/
格式at hh:mm yyyy-mm -dd
at>mkdir kk
CRTL+D键提交任务
周期性任务 crontab
服务/etc/init.d/crond
/var/spool/cron/用户名
vim /etc/crontab
run-parts /etc/cron.hourly/ 执行目录下程序
run-parts /etc/cron.daily/
run-parts /etc/cron.weekly/
run-parts /etc/cron.monthly/
crontab -e
分时日月周
30 7 * * * /etc/init.d/sshd start
30 23 * * * /etc/init.d/sshd stop
crontab -l 看
crontab -r 删除
at任务控制
/etc/at.allow 白名单(默认无) /etc/at.deny黑名单(默认空)
corn任务控制
/etc/cron.allow /etc/cron.deny
date +%Y-%m- %d %H%M
hwclock --hctosys核对硬件时钟
--systohc
延时任务 anacrontab
服务 /etc/init.d/anacron
/etc/anacrontab 配置文件
ls /var/spool/anacron
cat /var/sppol/anacron/cron.daily
users who w
查看当前登录的用户信息,详细度不同
last -2 最近登录成功的两条记录
lastb -2 最近登录失败的两条记录
典型的消息记录
时间标签 主机名 程序名 消息内容
tail /var/log/messages
linux日志消息主要由syslogd记录
软件包 sysklogd-1.4.1-39.2
主要程序 /sbin/klogd /sbin/syslogd
linux日志配置文件 /etc/syslog.conf
记录格式 设备 优先级 记录位置
vim /etc/sysconfig/syslog
logrotate 轮转
/etc/cron.daily/logrotate 每日计划执行的脚本
/etc/logrotate.conf 主配置文件
/etc/logrotate.d 存放用户定义的策略
/usr/sbin/logrotate 主程序
/var/lib/logrtate.status 轮转记录状态
1. 轮转的配置
主配置文件 /etc/logrotate.conf
副目录配置文件/etc/logrotate.d/*
轮转频率
(daily、weekly、monthly、yearly)
轮转大小
(size、minsize)
** size生效的话,会忽略轮转频率
** 轮转频率生效的话,会忽略size
** 配置的顺序:后生效的会覆盖之前的语句
2. 轮转的执行
1) 根据cron计划每天执行
/etc/cron.daily/logrotate
轮转命令所在目录/usr/sbin/logrotate
轮转日志主配置文件/etc/logrotate.conf
手动执行主配置文件 logrotate /etc/logrotate.conf
执行主配置文件包括下面文件
include /etc/logrotate.d/{yum,rpm,nsdtest, .. ..}
logrotate /etc/logrotate.d/nsdtest
** 加选项 -f 可强制轮转,即使轮转策略的条件尚不满足
** 加选项 -v 可输出过程信息
磁盘配额:限制用户或用户组对磁盘空间使用量的限制
mount -o rw,usrquota,grpquota /dev/sdb2 /sdb2
quoutacheck -avug
user.quota group.quota
edquota -u 用户名
edquota -g 用户组名
磁盘使用量的限制 block
创建文件个数的限制 innode
soft 100M 值 给出警告信息
105M宽限时间生效,7天
hard 120M 值 禁止用用户对磁盘的使用
quotaon -avug 开启磁盘配额
quotaoff -avug 关闭
mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd[b-e]
cat /proc/mdstat 查看RAID
20140609
内核与模块管理
/boot/vmlinux-2.6.18-348.el5 内核
/lib/modules/2.6.18-348.el5/kernel/...
lsmod 列出已加载的所有模块
modinfo 查看指定模块信息
rmmod 卸载指定的模块
modprobe 自动检测加载
insmod 插入模块,需要路径
zcat
cpio -id
创建系统镜像 镜像文件 版本号(目录名)
mkinitrd /boot/initrd-2.6.32.61.img 2.6.32.61
netstat -anptu |grep -i LISTEN
netstat -rn
traceroute
tracert Windows
mtr
host 目标主机
nslookup www.qq.com
/etc/resolv.conf DNS
ifconfig eth0 down/up 临时内存文件
ifdown eth0 ifup eth0 读取配置文件
service network restart 读取所有网卡配置
ifconfig eth0 hw ether 00:0c:29:74:73:dd 修改MAC地址
ifconfig eth0:0 192.168.2.1/24
route add default gw IP地址
route del default gw
route add -net 目标网段 gw IP地址
route del -net 目标网段
arp -s 192.168.8.8 00:50:56:E4:c5:72
arp -d 192.168.8.8
网卡/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-lo
TYPE=Ethernet
BOOTPROTO=static dhcp
HWADDR
MACADDR
TYPE=Ethernet
IPADDR=192.168.4.128
NETMASK=255.255.255.0
GATEWAY=192.168.4.1
DNS1=192.168.0.202
USERCTL=on
IPV6
主机名 /etc/sysconfig/network
默认网关
域名解析 (DNS服务器地址) /etc/resolv.conf
域名解析 (本地记录) /etc/hosts
static dhcp
HWADDR
MACADDR
/proc/sys/net/ipv4/ip_forward
/etc/sysctl.conf
sysctl -p 启动路由
20140610
sshd
/etc/ssh/sshd_config
prot 22 端口号
usrDNS no
ssh
ssh 【选项】 用户名@服务器地址
-p 指定端口
-X 可以加载远程窗口
scp
scp 192.168.4.120:/etc/hosts /root/
sftp
get 下载
get /etc/hosts
put 上传
tar
--newer-mtime yyyy-mm-dd
-N 20130611备份。。后修改
-p
-P
--exclude
1、忘记root密码
进单用户模式修改密码
2、EXT分区损坏
超级块
tune2fs -l /dev/sda1
dd if=/dev/zero of=/dev/sda1 bs=512 count=4
blkid /dev/sha1
fsck -y -t ext3 /dev/sda1 修复
3、检测磁盘坏道
badblocks -sv /dev/sdb
chroot /mnt/sysp_w_picpath
cd /boot/grub/grub.conf 启动菜单
/etc/inittab 启动模式
rpm -ivf --force
--nodeps
profix
stat 文件 查看文件节点作息.文件档案
inode
tune2fs 分区 分区档案
extundelete --inode 2 /dev/sdb1
--erstore-all /dev/sdb1
extundelete
--restore-file 'path'
--restore-directory 'path'
logwatch --range
rpm2cpio *.rpm |cpio -t |grep vmlinuz
rpm2cpio *.rpm |cpio -id 提取安装包文件
wget 下载整个网站
wget -crpk -np http://www.lfs.org.cn/book/index.html
6)从此RPM包内提取所有文件:
rpm2cpio initscripts*.rpm | cpio -idv
wget下载整个网站(在线文档)
误删除文件恢复
安装extundelete软件包,查看其用法
查看/dev/sda1设备上的可恢复文件列表:
extundelete --inode 2 /dev/sda1
恢复/dev/sda1设备上所有可恢复的文件:
extundelete --restore-all /dev/sda1
查看 RECOVERED_FILES/ 目录下找回了哪些被删除的文件
/var/ftp/ ftp默认目录
/etc/sysconfig/network-scripts/ifcfg-eth0
dd if=/dev/sda of=/sdb1/bak/sda.mbr bs=512 count=1
检查分区/dev/sda1是否存在坏道
badblocks -sv /dev/sda1
Linux远程控制
Linux备份策略
系统故障排除
#################################################
一、Linux远程控制
OpenSSH,Secure SHell
服务端程序:sshd
服务配置:/etc/ssh/sshd_config
Port 22 【SSH协议的标准端口】
UseDNS no 【不使用DNS解析】
Linux客户端的SSH程序
远程登录:
ssh 用户名@服务器地址
ssh -X 用户名@服务器地址
** 客户端得运行在桌面下,手动加载图形程序)
远程安全复制:
scp -r 用户名@服务器地址:/文件路径 本地路径
scp -r 本地文件或目录路径 用户名@服务器地址:远程路径
远程安全FTP:sftp 用户名@服务器地址
Windows客户端的SSH程序
SecureCRT
Putty(....)
F-Secure
WinSCP
二、Linux备份策略
基本备份方式
cp(选项 -p、制作镜像) 【选项 -p 保持权限等属性】
tar 完全备份
--newer-mtime yyyy-mm-dd:备份..后修改过的文档
-p:小写的-p,保留原有的属性/权限
-P:大写的-P,保留原有的绝对路径不变
--exclude:排除不需备份的文档
** 执行“stat 文件”可查看指定文件的详细时间(访问、修改、改变)属性
设备克隆工具
dd if=输入设备 of=输出设备
dd if=输入设备 of=输出设备 bs=块大小 count=块数量
** if --- Input File、of --- Output File
** bs --- Block Size
三、系统故障排除
故障修复
1. 遗忘root密码
1)重启,在GRUB菜单按e键,
2)修改kernel行(添加single,或字母s、数字1),回车保存
3)按 b 键启动,免密码验证进系统
4)重设 root 的口令
2. EXT分区超级块故障
1)模拟对/dev/sdb1分区的破坏操作
dd if=/dev/zero of=/dev/sdb1 bs=512 count=4
2)重新挂载/重启时报错
[root@svr5 ~]# mount -o remount /dev/sdb1 /mnt
.. .. mount: you must specify the filesystem type
3)进修复模式执行fsck修复
fsck -y -t ext3 /dev/sdb1
4)重新挂载及访问分区
3. 检测磁盘坏道
badblocks [选项]... 磁盘或分区
** 选项 -s 显示进度,-v 输出详细信息
** 比如 badblocks -sv /dev/sdb
4. MBR扇区破坏
1)备份MBR扇区,存放到其他磁盘(切记 !!!!)
** 假设将要备份磁盘/dev/sda(Linux系统所在盘)的MBR记录
** 另一块磁盘上的分区/dev/sdb1已挂载到/mnt/sdb1/
dd if=/dev/sda of=/mnt/sdb1/sda.mbr bs=512 count=1
2)破坏MBR扇区数据,重启后无法进系统
dd if=/dev/zero of=/dev/sda bs=512 count=1
3)RHEL5光盘引导,进入救援模式(获得临时Shell)
boot: linux rescue
4)从备份文件中恢复MBR扇区
sh-3.2# mkdir /tdir 【创建临时挂载点】
sh-3.2# mount /dev/sdb1 /tdir 【挂载存放有MBR备份的分区】
sh-3.2# dd if=/tdir/sda.mbr of=/dev/sda 【回写MBR备份】
5)重启后,MBR恢复正常
sh-3.2# exit 【退出修复环境,自动重启】
5. GRUB引导故障
1)先备份,再移除/boot/grub/grub.conf文件
cp /boot/grub/grub.conf /boot/grub/grub.conf.bak
2)重启后无法进系统
会停滞在“grub>”提示符状态
3)在 grub> 提示符后,手动执行引导
grub> root (hd0,0) 【进/boot分区】
grub> kernel /vmlinuz-2.6.18-348.el5 ro root=LABEL=/ 【起内核、找根分区】
grub> initrd /initrd-2.6.18-348.el5.img 【起initrd】
grub> boot 【引导Linux系统】
** 不足:操作比较麻烦,最好先知道内核、initrd镜像、根分区的位置
** 若手动引导失败,可进RHEL5光盘救援模式,再做恢复操作(参考4、5步)
4)进入系统后,重建 grub.conf 配置文件
cp /boot/grub/grub.conf.bak /boot/grub/grub.conf
reboot
5)【补注】若MBR中的引导器损坏,则grub> 将不可用
** 先进RHEL5光盘的rescue模式
** 待修复的Linux系统会自动挂载到 /mnt/sysp_w_picpath/ 下
sh-3.2# chroot /mnt/sysp_w_picpath 【切换至待修复系统】
sh-3.2# grub-install /dev/sda 【重装GRUB引导器】
sh-3.2# exit 【退出chroot环境】
sh-3.2# exit 【退出修复环境,自动重启】
6. 系统文件丢失(/etc/inittab)
故障现象:
启动提示 “... INIT: No inittab file found”
系统停滞,无法完成初始化
解决思路:
进入急救模式,从备份文件中恢复
或者,在急救模式中重装 initscripts 软件包
sh-3.2# chroot /mnt/sysp_w_picpath
sh-3.2# mount /dev/hdc /mnt //挂载RHEL5光盘设备
sh-3.2# rpm -ivh --force /mnt/Server/initscripts-*.rpm
#################################################
############################ ###################
## 备选扩展: ## ##
############################ ###################
7. 误删除恢复 rm -rf
1)注意不能再写入 —— umount
2)准备一个恢复工具,比如 extundelete
查看列表:extundelete --inode 2 /dev/sda1
恢复所有:extundelete --restore-all /dev/sda1
恢复指定文件:extundelete --restore-file 文件路径 /dev/sda1
恢复指定目录:extundelete --restore-directorie 目录路径 /dev/sda1
** extundelete --help 获取帮助
8. i节点耗尽验证(尽管有磁盘空间,但已无法写入文件)
建一个小分区(40MB),
格式化:mkfs -t ext3 /dev/sdb10
|-->创建超级块(superblock)—— inode数量、blocks数量
查看超级块:tune2fs -l /dev/sdb10
快速消耗i节点资源:
mkdir /mnt/testdir
mount /dev/sdb10 /mnt/testdir
for i in $(seq 15000) ; do touch "/mnt/testdir/file$i.txt" ; done
|--> 设一个超过可用i节点数量的数值
softname
** seq命令用来生成一个数字序列,for是一个循环语句(Shell课程会详细介绍)
** inode,i节点 —— 档案编号,每一个文件都需要
** 文件名 --> i节点 --> 文件内容
9. 软链接、硬链接
ln -s 建软链接:
链接文件 --> 被链接文件 --> i节点 -->文件内容
** 一旦删除“被链接文件”,剩下的“链接文件”将不可用
ln 建硬链接:
链接文件 --> i节点 -->文件内容
被链接文件 --> i节点 -->文件内容
** 即使删除“被链接文件”,剩下的“链接文件”仍然可用
主要特点:
** 软链接可以跨EXT文件系统(源和目标可在不同EXT分区)
** 硬链接不能跨EXT文件系统(源和目标必须在同一个EXT分区)
** 不能为目录建立硬链接,而软链接是可以的
10. logwatch日志报告
logwatch --range all --print | less
** --range可以指定为 all、yesterday、today
** 未指定 --range 选项时,缺省只列出前一天(yesterday)的日志报告
11. 提取rpm包内的个别文件
1)查看文件清单
rpm -qpl softname-1.0.rpm
2)确认相对路径
rpm2cpio softname-1.0.rpm | cpio -t
3)提取个别文件
rpm2cpio softname-1.0.rpm | cpio -idv 文件相对路径
4)提取所有文件
rpm2cpio softname-1.0.rpm | cpio -idv
选项说明:
-t,--list:查看可用的文件列表
-i,--extract:提取文件
-d,--make-directories:创建目录结构
-v,--verbose:详细输出
12. wget下载整个网站:
wget -crpk -np http://www.lfs.org.cn/book/index.html
选项说明:
-r,--recursive:递归下载所有链接
-p,--page-requisites:包括页面显示必需的目标
-k,--convert-links:下载完成后转换链接目标以便本地浏览
-np,--noparent:只向下递归,防止下载父级链接或外部链接等网页对象
-c,--continue:支持断点续传
-t,--tries=:指定重试次数
** LFS项目,Linux From Scratch
** —— 从零开始,全手工打造自己的Linux系统
#################################################