linux基础操作-----六

第一。命令的介绍
 
    sort
         -n  按整个数值大小进行比较(不加的话会按单个字符排列)

[root@qianxin df]# sort -t: -k1,1 -k3,3n s1.txt
baidu:4000:500:baidu
baidu:4000:3500:hello
dede:600:600:dede
google:5000:8000:google
sina:4500:4000:sina
sina:4500:4000:sina
up:4500:3000:up
wangyi:4000:5100:wangyi

        uniq  <---排除连续重复行

        cut   <--- 字段截取
               cut -d: -f1,4  s1.txt

        #ifconfig eth0 | grep "inet addr" | cut -d: -f2 | cut -d" " -f1

 wc  <----统计命令

[root@dns 03]# cat !$
welcome to upl
[root@dns 03]# wc /tmp/test/s2.txt
 1  3 15 /tmp/test/s2.txt  行数   字符串数   字符数(包含不可见换行符)

 cat /tmp/test/s2.txt | wc -l

   #nautilus . --browser
在当前打开文件夹,图形

 统计通过ssh登录系统失败的独立IP

 cat s3.txt  | grep "ssh" | grep -v "0.0.0.0" | cut -d")" -f2  | sort | uniq | wc -l

第二、软链接和硬连接

 软链接 :
  1、独立的inode编号,也就说它是独立文件,占用磁盘空间,占用的空间就是所指向的路径的长度
  2、相当于windows下的快捷方式,对软链接的访问,最终访问的是所指向的文件
  3、软连接可以跨分区(跨文件系统)创建
        4、允许对目录创建软链接
ln -s /etc/   /boot/etc  <---软链接/boot/etc 指向 /etc

 硬链接:
  1、相同inode编号,不是独立文件,不占用磁盘空间  
  2、不可以跨分区(跨文件系统)创建
  3、不允许对目录创建硬链接
  4、对数据的访问做了一个冗余

ln  /etc/hosts  /hosts

====================================================================

第三、计划任务
           常见的三个:at,cron,anacron
at

        特点:1 设定的未来时间点如果错过了,就不会再执行
              2 每次设定的任务都只会执行一次,不会重复
        启动  #service atd start
              #at 11:18 032310
              at> wall "welcome to upl"
              ctrl +d

        设定的任务都以文件的形式保存在/var/spool/at/
 
 手工取消任务,删除对应的计划文件

cron
 特点:
  1、设定的未来时间点如果错过了,就不会再执行
  2、每次设定的任务都重复执行。
 
         配置文件/etc/crontab 全局配置,只有管理员可以设定

01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
 * * * * * root wall "welcome tom up"
2 1  * * *  root wall ("welcome again";wall "Get out") <---执行多个指令a
01 0 * * *  root  /tmp/time.sh  <---执行一个脚本(存放了大量的指令,实现复杂的任务)

脚本需要注意的地方:
 1、脚本必须要有读与执行的权限,一般755
[root@dns /]# vim /tmp/time.sh
#!/bin/bash
ntpdate 10.1.1.1 >/dev/null 2>/dev/null
[root@dns /]# chmod 755 /tmp/time.sh

分钟  小时  日   月     星期   任务执行者  指令
0-59 0-23 1-31  1-12   0-7  (0 , 7都代表星期天)

*/2 * * * * <--每隔两分钟
0-5 * * * *  <--每小时的前五分钟
0-5,30-35 * * * *
*/3 */3 * * * <---每三个小时,每三分钟执行一次
01 0 1 * *  <---每个月1号0点01分执行
05 04 15 * 5   <----  每个月15日04:05执行任务或者星期五04:05也会执行

 普通用户设定任务
 crontab -e
0 20 * * * /sbin/init 0  <---每天20点自动关机                             

    /etc/cron.allow<--- cron.allow比deny更优先,如果两个文件同时存在,那么cron只认allow

 /etc/cron.deny   <---每行一个用户名,存在的名字就不能使用cron

anacron
vim /etc/anacrontab
天数 延迟分钟 任务执行周期标志 执行的任务
1       65      cron.daily              run-parts /etc/cron.daily
7       70      cron.weekly             run-parts /etc/cron.weekly
30      75      cron.monthly            run-parts /etc/cron.monthly

service anacron start
chkconfig --level 35 crond on
chkconfig --level 35 anacron on

=========================================================

磁盘阵列 Raid

 Raid 0   ---> 至少需要两个磁盘,提高的存取速度,不能坏掉任何一个
 Raid 1   ---> 至少需要两个磁盘,提供数据镜像,对数据做了冗余。至少有一个磁盘是好的。存数据效率没提高,读取数据效率提高了。
 Raid 5   ---> 至少需要三个磁盘,既提供数据冗余,又提高IO性能。可以坏掉其中一块硬盘。

 Raid 01  ---> 先组合成raid0 再组合成raid1
 Raid 10 

实现软raid0的步骤:

 1、新建两个相同容量分区,并且分区的类型为fd

 2、把新建的分区组合成新的raid设备
 
# mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sda10 /dev/sda11
mdadm: array /dev/md0 started.

 查看创建
 watch cat /proc/mdstat

 tail -30 /var/log/messages
第一次创建好的raid设备会自动激活,激活的意思就是把原始设备组装起来成为一个raid设备

 3、 格式化并且挂载使用
mkfs.ext3   /dev/md0

mount /dev/md0  /mnt


 例子2: 创建一个raid5设备

 1、新建分区...
 2、命令创建
# mdadm  --create /dev/md1  --level=5 --raid-devices=3 /dev/sda{12,13,14}
 查看创建
 watch cat /proc/mdstat
 3、为了能够够支持命令自动组装,可以把组装的信息写在配置文件里
 /etc/mdadm.conf
 echo "DEVICES /dev/sda12  /dev/sda13 /dev/sda14"  > /etc/mdadm.conf
 mdadm --detail --scan >> /etc/mdadm.conf

 4、格式化并且挂载
 


一些管理操作
 停止使用某个raid设备
  1、取消挂载
  2、命令停止
[root@dns /]# mdadm --stop  /dev/md0
mdadm: stopped /dev/md0

 重新组装raid设备(读取/etc/mdadm.conf):
[root@dns /]# mdadm -As  /dev/md1
mdadm: /dev/md1 has been started with 3 drives.

 如果是配置文件里没有相关的组装信息的话:
  mdadm -E /dev/sda10
  mdadm -Av --uuid=8c478e44:01b7bd6b:64416f8a:c5a1a1cb  /dev/md0 (<--必须是不存在/etc/mdadm.conf的前提下才能组装成功)
  
为了支持命令重新自动组装,建议把组装信息写在配置文件
echo "/dev/sda10 /dev/sda11 /dev/sda12 /dev/sda13 /dev/sda14" > /etc/mdadm.conf
mdamd --detail --scan >> /etc/mdadm.conf

# cat /etc/mdadm.conf
DEVICES /dev/sda10 /dev/sda11 /dev/sda12 /dev/sda13 /dev/sda14
ARRAY /dev/md0 level=raid0 num-devices=2 UUID=8c478e44:01b7bd6b:64416f8a:c5a1a1cb
ARRAY /dev/md1 level=raid5 num-devices=3 UUID=20686ada:de584c07:d540144c:0a99730d


 模拟原设设备故障 

通过命令模拟:
 
[root@dns /]# mdadm /dev/md1  --fail  /dev/sda12  --remove /dev/sda12
mdadm: set /dev/sda12 faulty in /dev/md1

[root@dns /]# mdadm /dev/md1  --add /dev/sda15
mdadm: added /dev/sda15
[root@dns /]# watch cat /proc/mdstat


 删除raid设备

 1、取消挂载,停止正在激活状态raid设备
 2、删除配置文件 /etc/mdadm.conf
 3、抹去原始设备超级块的信息或者直接删除原设设备(分区)

[root@dns /]# mdadm --misc --zero-superblock  /dev/sda10
[root@dns /]# mdadm --misc --zero-superblock  /dev/sda11
[root@dns /]# mdadm --misc --zero-superblock  /dev/sda12
[root@dns /]# mdadm --misc --zero-superblock  /dev/sda13
[root@dns /]# mdadm --misc --zero-superblock  /dev/sda14
[root@dns /]# mdadm --misc --zero-superblock  /dev/sda15

例子:
 1、使用虚拟机安装一个系统,添加4-5个磁盘(scsi类型),并且分别建立raid 0,raid 1 ,raid 5设备。验证他们的优缺点(模式设备故障,看看是否还能进行数据存取等)
 2、对raid5设备进行挂载,要求支持磁盘配额,acl等功能,确定raid设备是否支持用户组磁盘配额功能。

思路:
第一步:将添加的5个scsi硬盘进行分区,并设置文件系统类型,使其的结果达到如下的显示
[root@localhost ~]# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          25      200781   83  Linux
/dev/sda2              26        1330    10482412+  83  Linux
/dev/sda3            1331        1395      522112+  82  Linux swap / Solaris
/dev/sda4            1396        2610     9759487+   5  Extended

Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         130     1044193+  fd  Linux raid autodetect

Disk /dev/sdc: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         130     1044193+  fd  Linux raid autodetect

Disk /dev/sdd: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1         130     1044193+  fd  Linux raid autodetect

Disk /dev/sde: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sde1               1         130     1044193+  fd  Linux raid autodetect

Disk /dev/sdf: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdf1               1         130     1044193+  fd  Linux raid autodetect

#parprobe

第二步: 第1步:创建raid0,包含sdb,sdc
#mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc

         第2步:查看raid0是否创建成功
         #watch cat /proc/mdstat

         第3步:格式化分区
         #mkfs.ext3 /dev/md0

         第4步:挂载/dev/md0

第三步: 第1步:创建raid5,包含sdd,sde,sdf
#mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdd /dev/sde /dev/sdf

         第2步:查看raid0是否创建成功
         #watch cat /proc/mdstat

         第3步:格式化分区
         #mkfs.ext3 /dev/md1

         第4步:挂载/dev/md1

第四步:模式设备故障:以RAID5为例

#watch cat /proc/mdstat         实时查看

#mdadm /dev/md1 --fail /dev/sdd  以命令将/dev/sdd认为是损坏的

#mdadm /dev/md1 --remove /dev/sdd 将被认为是损坏的/dev/sdd移出raid5

#mdadm /dev/md1 --add /dev/sdd 将另一个好的加入到raid5中(假设和原来的设置是一样的)

第二题:只要挂载时候带上usrquota,grpquota,acl参数就差不多了

 

你可能感兴趣的:(linux,基础)