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系统

#################################################