2、新建用户archlinux,要求其家目录为/users/archlinux
,而后su切换至archlinux用户,复制/etc/pam.d目录至自己
的家目录
[root@Cloud /]#useradd -d /users/archlinux archlinux #新建用户archlinux [archlinux@Cloud ~]# getent passwd archlinux #查看archlinux用户信息 archlinux:x:3002:3002::/users/archlinux:/bin/bash [root@Cloud /users]#su - archlinux #切换用户 [archlinux@Cloud ~]$ cp -r /etc/pam.d/ ./ #复制目录/etc/pam.d到当前目录 [archlinux@Cloud ~]$ ll pam.d/ -d #显示其信息 drwxr-xr-x 2 archlinux archlinux 4096 Sep 9 12:30 pam.d/
3、扩展testlv至7G,要求archlinux用户的文件不能丢失
[root@Cloud /users]#lvextend -L 7G /dev/testvg/testlv #扩展至7G
Size of logical volume testvg/testlv changed from 5.00 GiB (320 extents) to 7.00 GiB (448 extents
[root@Cloud /users]#lvs /dev/testvg/testlv #简要查看拓展的lv卷
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
testlv testvg -wi-ao—- 7.00g #显示为7G,成功
[root@Cloud /users/archlinux]#ll -d /users/archlinux/pam.d/ #数据大小未变
drwxr-xr-x 2 archlinux archlinux 4096 Sep 9 12:30 /users/archlinux/pam.d/
[root@Cloud /etc/pam.d]#ll /users/archlinux/pam.d/ |wc -l
56
4、收缩testlv至3G,要求archlinux用户的文件不能丢失
[root@Cloud /users/archlinux]#lvreduce -L 3G /dev/testvg/testlv
WARNING: Reducing active and open logical volume to 3.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce testvg/testlv? [y/n]: y
Size of logical volume testvg/testlv changed from 7.00 GiB (448 extents) to 3.00 GiB (192 extents).
Logical volume testlv successfully resized.
[root@Cloud /users/archlinux]#lvs /dev/testvg/testlv
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
testlv testvg -wi-ao—- 3.00g
[root@Cloud /users/archlinux]#ll -d /users/archlinux/pam.d/ #数据大小未变
drwxr-xr-x 2 archlinux archlinux 4096 Sep 9 12:30 /users/archlinux/pam.d/
[root@Cloud /etc/pam.d]#ll /users/archlinux/pam.d/ |wc -l
56
5、对testlv创建快照,并尝试基于快照备份数据,验正快照
的功能
[root@Cloud /users/archlinux]#lvcreate -s -L 512M -n mylv-snap -p r /dev/testvg/testlv #创建快照 Logical volume "mylv-snap" created.
[root@Cloud /users/archlinux]#lvdisplay /dev/testvg/mylv-snap #显示快照详细信息 --- Logical volume ---
LV Path /dev/testvg/mylv-snap
LV Name mylv-snap
VG Name testvg
LV UUID LVpNHy-ol30-OZCX-oo1J-d2cZ-2xhb-JrsAiw
LV Write Access read only
LV Creation host, time Cloud.GO, 2016-09-09 14:28:50 +0800 LV snapshot status active destination for testlv
LV Status available # open 0 LV Size 3.00 GiB
Current LE 192 COW-table size 512.00 MiB
COW-table LE 32 Allocated to snapshot 0.00%
Snapshot chunk size 4.00 KiB
Segments 1 Allocation inherit
Read ahead sectors auto - currently set to 256 Block device 253:5 [root@Cloud /users/archlinux]#mount /dev/testvg/mylv-snap /mnt/snap/ #挂载快照 mount: block device /dev/mapper/testvg-mylv--snap is write-protected, mounting read-only
[root@Cloud /users/archlinux]#ll /mnt/snap/archlinux/pam.d/|wc -l #快照还有56个 56 [root@Cloud /users/archlinux]#rm /users/archlinux/pam.d/a #删除原有数据 abrt-cli-root atd authconfig authconfig-gtk authconfig-tui
[root@Cloud /users/archlinux]#rm /users/archlinux/pam.d/atd rm: remove regular file `/users/archlinux/pam.d/atd'? yes [root@Cloud /users/archlinux]#rm /users/archlinux/pam.d/a* rm: remove regular file `/users/archlinux/pam.d/abrt-cli-root'? yes rm: remove regular file `/users/archlinux/pam.d/authconfig'? yes rm: remove regular file `/users/archlinux/pam.d/authconfig-gtk'? yes rm: remove regular file `/users/archlinux/pam.d/authconfig-tui'? yes [root@Cloud /users/archlinux]#ll /users/archlinux/pam.d/| wc -l 51 #只剩下51个文件 [root@Cloud /]#cp -anr /mnt/snap/archlinux/pam.d/ /users/archlinux/ #恢复快照 [root@Cloud /]#ll /users/archlinux/pam.d/|wc -l #查看文件个数 56
磁盘配额
在内核中执行
•以文件系统为单位启用
•对不同组或者用户的策略不同
根据块或者节点进行限制
•执行软限制(soft limit)
•硬限制(hard limit)
初始化
•分区挂载选项:usrquota、grpquota
•初始化数据库:quotacheck
执行
•开启或者取消配额:quotaon、quotaoff
•直接编辑配额:edquota username
•在shell中直接编辑:
setquota usename 4096 5120 40 50 /foo
•定义原始标准用户
报告
• 用户调查:quota
• 配额概述:repquota
• 其它工具:warnquota
[root@Cloud /home]#lsblk |grep 'sdc' # #使用用的磁盘/dev/sdc1 sdc 8:32 0 20G 0 disk
└─sdc1 8:33 0 20G 0 part /home
[root@Cloud /]#mke2fs -t ext4 -L /home /dev/sdc1 #格式化 [root@Cloud /]#mkdir /mnt/home #创建空目录用来挂载 [root@Cloud /]#mount /dev/sdc1 /mnt/home/ #挂载 [root@Cloud /home]#mv * /mnt/home/#移动/home下的数据 root@Cloud /home]#cd /mnt/home/ [root@Cloud /mnt/home]#ls #显示挂载数据 lala lost+found mage moon user
[root@Cloud /mnt/home]#ll -h #详细信息 total 32K
drwx------ 4 lala root 4.0K Jul 28 17:47 lala
drwx------ 2 root root 16K Sep 8 19:26 lost+found
drwx------ 4 mage mage 4.0K Jul 27 19:11 mage
drwx------ 4 moon moon 4.0K Jul 28 17:52 moon
drwx------ 4 user user 4.0K Jul 28 17:44 user
[root@Cloud /]#vim /etc/fstab #挂载到/home UUID="f5e56c7d-d3e4-4be1-b9f3-750b2f582e31" /home ext4 defaults,usrquota,grpquota 0 0 [root@Cloud /]#mount -a #启用 [root@Cloud /home/lala]#mount |grep '/dev/sdc1' #查看挂载的信息 /dev/sdc1 on /home type ext4 (rw,usrquota,grpquota)
[root@Cloud /]#umount /mnt/home #卸载 [root@Cloud /]#ll /home/ #查看挂载分区加入usrquota,grpquota total 32 drwx------ 4 lala root 4096 Jul 28 17:47 lala
drwx------ 2 root root 16384 Sep 8 19:26 lost+found
drwx------ 4 mage mage 4096 Jul 27 19:11 mage
drwx------ 4 moon moon 4096 Jul 28 17:52 moon
drwx------ 4 user user 4096 Jul 28 17:44 user
[root@Cloud /home]#quotacheck -cug /home #创建quota数据库 [root@Cloud /home]#ls #信息。 aquota.group aquota.user lala lost+found mage moon user
[root@Cloud /home]#getenforce #关于权限 Disabled #如果启用要改成禁用 [root@Cloud /home]#quotaon -p /home #查看quota是否看起! group quota on /home (/dev/sdc1) is off user quota on /home (/dev/sdc1) is off [root@Cloud /home]#quotaon /home #开启home的quota [root@Cloud /home]#quotaon -p /home/ #查看quota group quota on /home (/dev/sdc1) is on user quota on /home (/dev/sdc1) is on [root@Cloud /home]#edquota lala #设置lala用户的磁盘配额 #关于相信信息 Disk quotas for user lala (uid 3000): #soft警告 Filesystem blocks soft hard inodes soft hard
/dev/sdc1 32 0 0 8 0 0 #已使用块数量(单位为k) (软数据大小)(硬数据大小)(inode数量)(软数量大小)(硬文件数量) [root@Cloud /home/lala]#quota lala #更改的信息 Disk quotas for user lala (uid 3000):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdc1 32 1000 5000 8 0 0 [root@Cloud /home/lala]#repquota /home #查看//home的所有quota
*** Report for user quotas on device /dev/sdc1
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 20 0 0 3 0 0 mage -- 36 0 0 9 0 0 user -- 36 0 0 9 0 0 lala -- 32 1000 5000 8 0 0 moon -- 32 0 0 8 0 0 [root@Cloud /home/lala]#edquota -p lala mage #lala和mage同一quota [root@Cloud /home/lala]#repquota /home #查看/home所有quota *** Report for user quotas on device /dev/sdc1
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 20 0 0 3 0 0 mage -- 36 1000 5000 9 0 0 user -- 36 0 0 9 0 0 lala -- 32 1000 5000 8 0 0 moon -- 32 0 0 8 0 0 [root@Cloud /home/lala]#setquota user 10000 20000 0 0 /home #一步到位设置quota [root@Cloud /home/lala]#quota user #查看quota配置 Disk quotas for user user (uid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/sdc1 36 10000 20000 9 0 0
dd命令
dd命令用于复制文件并对原文件的内容进行转换和格式化处理。
用法:
if=/PATH/FROM/SRC
从 file 中读而不是标准输入。
of=/PATH/TO/DEST
写到 file 里去而不是标准输出。
bs=#:block size, 复制单元大小
count=#:复制多少个bs
of=file写到所命名的文件而不是到标准输出
if=file从所命名文件读取而不是从标准输入
bs=size指定块大小(既是是ibs也是obs)
ibs=size一次读size个byte
obs=size 一次写size个byte
cbs=size 一次转化size个byte
skip=blocks从开头忽略blocks个ibs大小的块
seek=blocks从开头忽略blocks个obs大小的块
count=n只拷贝n个记录
conv=conversion[,conversion…] 用指定的参数转换文件。
转换参数:
ascii 转换EBCDIC 为ASCII。
ebcdic 转换ASCII 为EBCDIC。
block 转换为长度为cbs 的记录,不足部分用空格填充。
unblock 替代cbs长度的每一行尾的空格为新行。
lcase 把大写字符转换为小写字符。
ucase 把小写字符转换为大写字符。
swab 交换输入的每对字节。
noerror 出错时不停止。
notrunc 不截短输出文件。
sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐
磁盘拷贝:
ddif=/dev/sdaof=/dev/sdb
备份MBR:
ddif=/dev/sdaof=/tmp/mbr.bakbs=512 count=1
破坏MBR中的bootloader:
ddif=/dev/zero of=/dev/sdabs=64 count=1 seek=446
有二进制文件fileA,size>2K。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,请问如何实现?
#ddif=fileAof=fileBbs=1 count=128 skip=63 seek=31 conv=notrunc
备份:
dd if=/dev/sdx of=/dev/sdy
将本地的/dev/sdx整盘备份到/dev/sdy
dd if=/dev/sdx of=/path/to/image
将/dev/sdx全盘数据备份到指定路径的image文件
dd if=/dev/sdx | gzip >/path/to/image.gz
备份/dev/sdx全盘数据,并利用gzip工具进行压缩,保存到指定路径
恢复:
dd if=/path/to/image of=/dev/sdx
将备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/sdx
将压缩的备份文件恢复到指定盘
拷贝内存资料到硬盘
dd if=/dev/mem of=/root/mem.bin bs=1024
将内存里的数据拷贝到root目录下的mem.bin文件
从光盘拷贝iso镜像
dd if=/dev/cdrom of=/root/cd.iso
拷贝光盘数据到root文件夹下,并保存为cd.iso文件
销毁磁盘数据
dd if=/dev/random of=/dev/sda1
利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行。
得到最恰当的block size
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file
通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size大小
测试硬盘读写速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
通过上两个命令输出的执行时间,可以计算出测试硬盘的读/写速度
修复硬盘
dd if=/dev/sda of=/dev/sda
当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生消磁点。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的。
原创文章,作者:island,如若转载,请注明出处:http://www.178linux.com/71238