马哥教育M28第十三天到第十五天学习总结

马哥第十三天、

<font size=4>1.lftp安装:直接在Linux上登录远程服务器下载ftp上的文件,查询lftp使用方式
lftp 用户名:密码@ftp地址:传送端口(默认21)
也可以先不带用户名登录,然后在接口界面下用login命令来用指定账号登录,密码不显示

     查看文件与改变目录
     ls     !ls (凡是加!,指的是操作本地计算机环境)
     cd 对应ftp目录
     下载
     get当然是可以的,还可以:
     mget -c *.pdf    #把所有的pdf文件以允许断点续传的方式下载
     mirror  aaa/     #将aaa目录整个的下载下来,子目录也会自动复制
     pget -c -n 10 file.dat   #以最多10个线程以允许断点续传的方式下载file.dat,可以通过设置 pget:default-n的值而使用默认值上传
     同样的put、mput都是对文件的操作,和下载类似.
     mirror -R 本地目录名
     将本地目录以迭代(包括子目录)的方式反向上传到ftp  site
     模式设置
     set ftp:charset  gbk  远程ftp site用gbk编码,对应的要设置为uft8,只要替换为gbk为utf8即可
     set file:charset utf8 本地的charset设定为utf8,如果你是gbk,相应改掉
     set ftp:passive-mode 1
     使用被动模式登录,有些site要求必须用被动模式或者主动模式才可以登录,这个开关就是设置这个的,0代表不用被动模式
     书签
     其实命令行也可以有书签,在lftp终端提示符下:
     bookmark add ustc   #就可以把当前正在浏览的ftp site用ustc作为标签储存起来。以后在shell终端下,直接lftp ustc就可以自动填好用户名和密码,进入对应的目录了。
     bookmark edit
     会调用编辑器手动修改书签。当然,也可以看到,这个书签其实就是个简单的文本文件,用户名、密码都可以看到
     配置文件
     vim /etc/lftp.conf
     一般,会添加这几行:
     set ftp:charset gbk
     set file:charset utf8
     set pget:default-n 5
     这样,就不用每次进入都要打命令了,其他的set可以自己tab然后help来看。

2.b编译安装过程中出现任何需要另外安装的,结合yum search 包名 通过模糊搜索得到相应的软件包然后选择合适的进行安装

3.dd if of : 可以使用dd克隆复制命令对硬盘分区或者文件系统进行重命名</font>

马哥第十四天、

<font size=4>1.硬盘最外围磁道0磁道的第一个分区是MBR 512字节, 446B->boot loader , 64B分区表 , 2B校验(55 AA)
2.mknod: linux下创建块设备或者字符设备的命令 make Node
block c设备
mknod /app/magedisk b 8 5
mknod /app/dvd b 11 0
mknod /app/tty1 c 4 1
mknod其中的一种重要用途是:为Linux系统中的硬盘创建一个新的设备名(实际上就是创建新的文件设备b,主设备号、次设备号与硬盘对应一致,可以形象的看作是为设备创建了一个链接;同理,在对硬盘进行了分区之后,对应的应该是为分区创建新的文件设备名->创建时需要对应分区的主要设备号、次要设备号即可!);mknod不能跟随硬盘同步分区(只是认为的根据实际设备号进行创建设备文件)

CHS 磁盘三围
cylinder 柱面
head 磁头
sector 扇区

track 磁道
512sector数/ track head * track数/盘面
B KB MB GB TB PB EB ZB YB BB NB DB

echo ‘- - -‘ > /sys/class/scsi_host/host0/scan 注意:虚拟机或者说是虚拟化下对新增硬盘快速生效方式是给系统虚拟硬盘所在host下的面板传递信号- - - ,以便引导系统去重读分区信息;但是在生产环境下基本不太可能,用的都是直接物理机
fdisk /dev/sdb
mkfs.ext4 /dev/sdb1
mount /dev/sdb1 /mnt #mount挂载的只能说是文件系统,只是在分区后分区设备默认被创建了同命名的文件系统,挂载后,挂载点里面的所有内容暂时被隐藏,卸载才能看到
cp /etc/fstab /mnt/
umount /mnt/
hexdump -C -n 512 /dev/sdb -v #查看磁盘前512字节信息

skip表示跳过if(源)设备多少字节
seek表示跳过of设备多少字节
dd if=/dev/sdb of=/app/mbr.bak bs=1 count=512
dd if=/dev/sdb of=/app/mbrtable.bak bs=1 count=64 skip=446
partx -d /dev/sdb --nr 1
dd if=/app/mbrtable.bak of=/dev/sdb bs =1 count=64 seek=446
partprobe /dev/sdb
mount /dev/sdb1 /mnt/

实验:破坏sdb的55AA,然后通过sda恢复 千万注意:dd是具有极大破怀兴的,通常仅作测试的时候使用,正常情况下不需使用dd命令!!
dd if=/dev/zero of=/dev/sdb bs=1 count=2 seek=510
dd if=/dev/zero of=/dev/sdb bs =1 count=2 skip=510 seek=510

磁盘设备文件命名规则:
CentOS5及其之前:SCSI, SATA, SAS, USB: /dev/sd
IDE: /dev/hd

CentOS6及其之后:SCSI, SATA, SAS, IDE ,USB:/dev/sd
KVM: /dev/vd

Xen: /dev/xvd*

3.测试磁盘I/O读写速度:
思考问题1.通过学习了硬盘等相关硬件知识后,应该学会思考:利用什么去测试硬盘的读写速率,进一步联想去挑选什么硬盘,如何在工作中测试并使用满足要求的性能高的I/O磁盘

用法:
1.测试IO读:
hdparm -t --direct /dev/sda3 #CentOS7中需要使用root用户身份手动安装hdparm
2.测试IO写:
sync;/usr/bin/time -p bash -c "(dd if=/dev/zero of=test.dd bs=1000KB count=20000;sync)"

                        dd bs=1M   count=20000  if=/dev/zero  of=test.dd  conv=fdatasync      #dd命令测试是IO的顺序写和读方式
        3.查看文件系统块大小
                            tune2fs -l /dev/sda1 |grep Block
      上面的命令行有些复杂,做下详细的解释:
                        (1)sync 命令用来刷新文件系统的缓冲区,执行sync命令实际的作用是把内存中的数据缓冲写入到磁盘中。先执行下sync,是为了减少对后面测试的影响。也可以使用 echo 3 > /proc/sys/vm/drop_caches来清除缓存。
                        (2)time 命令用来测试命令的执行时间,shell内建还有一个time命令,我们这里使用全路径来指定使用的是非内建命令。
                        -p 选项设置时间的输出格式为POSIX缺省时间格式,单位是秒,在后面的测试小节可以看到time -p  的输出形式
                        (3)bash 命令 -c 选项的作用是将后面的字符串参数当做bash脚本来执行,看起来有些画蛇添足,好像直接执行也是可以的。其实不然,因为后面字符串包含了两条命令行,而time命令需要统计这两条命令行的执行时间。
                        (4)小括号的意思是另起一个子进程来执行括号中的脚本,dd这条命令行这里就不讲了,重点是sync命令,因为当dd退出时,这条命令行提交的大部分内容都在内存缓冲区(写缓存),甚至如果机器的内存相比于 你提交的数据要大得多,那可能数据都在内存中,而再执行sync才能将内存中的数据写入到磁盘中,否则就成了测试内存的写速度,那显然是不对的。

4.针对CentOS6系列的分区必须注意硬盘大小,如果分区大于2T,就使用不了MBR分区dos类型,必须使用parted 或gdisk来分区gpt类型(支持64位寻址大于2T)
5.注意:使用卷标对设备进行挂载或者开机自动挂载 -> /etc/fstab
LABLE=DEVICENAME mount LABLE=DEVICENAME /mnt
生产环境,写入配置文件的时候,UUID进行唯一识别 blkid;
mount UUID=‘‘ /mnt

6.e2fsck -f 针对ext类型的文件系统进行强制修复,可交互
在文件系统因外界压力不正常卸载或未卸载!

7.快速查看占用某一分区或者文件系统的进程以及详细信息 lsof
fuser -v /fsname/
fuser -vmk /fsname 递归杀死占用挂载点进程(涉及到目录,必须考虑递归问题)

作业:
1.给当前虚拟机增加一个80G大小的硬盘,要求当前生效可以使用fdisk -l 查看到该硬盘,名为/dev/sdb
2.为/dev/sdb创建一个新的设备名为/app/magediska
mknod /app/magediska b 8 16
3.对/app/magediska进行分区,要求如下
a.创建/app/magediska1分区,大小为100M,格式化为ext4文件系统,并挂载到/mnt/diska目录下
b.将/etc/fstab文件复制到在/mnt/diska上后卸载分区。
c.仅备份/app/magediska分区的分区表至/app/mbr.bak
dd if=/dev/sdb of=/app/mbr.bak bs=1 count=16 skip=446
d.使用dd命令初始化/app/magediska硬盘,使其没有分区表信息
dd if=/dev/zero of=/dev/sdb bs=1 count=512
e.再使用fdisk命令创建/app/magediska2分区,格式化为ext3文件系统,并挂载到/mnt/diskb目录下并将/etc/passwd文件复制到该目录下。
f.利用c步骤的备份还原/app/magediska1分区,确保/app/mageddd if=/dev/sdb of=/app/mbr.bak bs=1 count=16 skip=446iska2分区不受影响。最后再次将/app/magediska1挂载到/mnt/diska下,确保其中的fstab文件依然可用。
dd if=/app/mbr.bak of=/dev/sdb bs=1 count=16 seek=446

二、
BIOS+MBR BIOS+MBR+GPT
UEFI+GPT
传统的BIOS启动由于MBR的限制,默认是无法引导超过2.1TB以上的硬盘的;GPT类型分区超2.1TB;

fdisk parted gdisk
非交互式增加一个1G的分区:
echo -e "n\n\n+1G\nw\n" |fdisk /dev/sda
cat <<EOF | fdisk /dev/sda
n

                +1G
                w
                EOF
            echo  -e "n\n\n\n+1G\n\nw\ny\n"  |gdisk /dev/sdb
            parted  /dev/sdb   primary  1000(sector)   2000

            查看内核是否同步分区表信息的方法:
            lsblk(只限于CentOS6及其以上的系统)
            cat /proc/partitions
            ls  /dev/sdX*

            更新方法如下:
            partprobe /dev/sda  (CentOS6、CentOS7)
            CentOS6只限于对非系统所在硬盘使用
            partx -a  /dev/sda  更新增加的分区
            partx  -d  /dev/sda  --nr 6-7  删除分区6和7

    postfix(25 smtp) /var/mail  nfs  Sun  Oracle
    dovecot (pop3 imap)
    pop3.qq.com          smtp.qq.com
    Windows  Linux  CIFS  samba

    查看当前操作系统所支持的文件系统
                    cat /proc/filesystems

    journal
                    /var/log    排错
                    oracel
                                        redo  log    -1000
                    ext3
                                    inode   bitmap
                                        block    bitmap
                  格式化
                                    mkfs.xfs   /dev/sdb1
                                    mkfs   -t   xfs   /dev/sdb2
                    e2fsck   -f    /dev/sdb1

mount
-t vsftype:指定要挂载的设备上的文件系统类型
-r readonly, 只读挂载
-w read and write ,读写挂载
-n 不更新/etc/mtab, mount 不可见
-a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能) #mount -a 自动挂载的只能是/etc/fstab中尚未挂载的设备,已经挂载的不再进行挂载,需要使用remount重新挂载
-L ‘LABLE’ 以卷标指定挂载设备
-U ‘UUID‘ 以UUID指定要挂载的设备
-B --bind 绑定目录到另一个目录上
查看内核追踪到的已经挂载的所有设备
cat /proc/mounts
挂载选项
-o options: 挂载文件系统的选项,多个选项使用逗号分隔
async:异步模式
sync : 同步模式,内存更改时,同时写磁盘
atime/noatime:包含目录和文件
diratime/nodiratime :目录的访问时间戳
auto/noauto :是否支持自动挂载,是否支持-a 选项
exec/noexec: 是否支持将文件系统上运行应用程序
dev/nodev : 是否支持在此文件系统上使用设备文件
suid/nosuid : 是否支持suid和sgid权限
remount :重新挂载
ro : 只读
rw:读写
user/nouser: 是否允许普通用户挂载此设备,/etc/fstab使用
acl:启用此文件系统上的acl功能
loop:使用Loop设备
defaults:相当于rw,suid,dev,exec,auto,nouser,async

findmnt /dev/sdb1
lsof /mount/ 查看访问该挂载点目录的所有进程信息
fuser -vmk /mount 强制结束所有访问该挂载点及其子目录的进程

作业:
1.当/etc/fstab中uuid错误时且末位为非0时,系统无法正常启动的问题解决
1.因为硬盘挂载检测是开机启动初期根目录先以只读的方式挂载,当紧接着一位分区设备末位非0强制检测,导致检测失败不通过,在根目录及其下所有目录和文件只读情况下,应该先 mount -o remount,rw / ; 然后修改/etc/fstab文件中错误的uuid或者将末位改为0重新启动挂载,然后跳过再正确修改!
2.小总结:使用uuid挂载时,结束退出前最好将以挂载的文件系统卸载,再正确关机

2.创建一个2G的文件系统,块大小为2048byte, 预留1%可用空间,文件系统类型ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项.
                            fdisk  |gdisk(|partx) /dev/sdb  .. 分区2G
                            1.mke2fs  -L TEST  -b 2048  -t ext4  -m 1 /dev/sdb3
                            2.tune2fs -o acl test    ;   blkid   /dev/sdb3
                            3.vim /etc/fstab
                                UUID=...             /app/test       ext4       default        00

swap的扩展
整块硬盘的swap
mkswap /dev/sdX
swapon /dev/sdX
基于分区的swap
fdisk|gdisk|parted 对sdX进行分区,注意转换分区类型为82
mkswap /dev/sdXn
swapon /dev/sdXn
基于文件的swap
dd if=/dev/zero of=/path/swap.img bs=1M count=xxx
mkswap /path/swap.img
swapon /path/swap.img
swapon -s 查看所有的swap信息
swapon -a 加载/etc/fstab当中所有尚未加载的swap设备
-p 指定swap的优先级,数字越大越优先
swapoff 关闭指定的swap设备
-a 关闭所有的swap设备
在/etc/fstab中书写的方式如下:
UUID=c4983177-34ae-4b99-bd81-42011b536088 swap swap defaults,pri=1 00
UUID=73fe49f8-b44a-42fa-bcbd-1639058f5326 swap swap defaults,pri=2 0 0

在Linux下挂载ntfs格式的U盘
安装 ntfs-3g包
配置epel仓库
[fedora-epel]
name=epel
baseurl=http://172.18.0.1/fedora-epel/7/x86_64/
gpgcheck=0
mount /dev/sdb4 /mnt

光盘挂载
                mount  /dev/sr0   /media
                mount   /dev/cdrom   /media

                free
                du -sh  直接统计整个目录及其内部使用大小
                常见的df和du不一致情况就是文件删除的问题。当一个文件被删除后,在文件系统 目录中已经不可见了,所以du就不会再统计它了。然而如果此时还有运行的进程持有这个已经被删除了的文件的句柄,那么这个文件就不会真正在磁盘中被删除, 分区超级块中的信息也就不会更改。这样df仍旧会统计这个被删除了的文件。

quota
ext文件系统的quota
1.mount -o usrquota,grpquota /dev/sdXn /path
2.quotacheck -cugm /path
3.quotaon /path
4.setquota username 100M 200M 80 100 /data

edquota -u username 交互式
edquota -p username1 username2
将username1的quota策略复制给username2

练习:
为liubei guanyu zhangfei caocao四个用户配置一个共享目录,要求如下:
1.共享目录的大小为3GB,要求为ext4类型的文件系统,挂载到/data目录。
fdisk /dev/sda
partx -a /dev/sda
mkdir /data
mke2fs -t ext4 /dev/sdaX
mount /dev/sdaX /data

2.设置liubei guanyu zhangfei三个用户可以在共享目录下创建以及删除文件
for n in liubei guanyu zhangfei caocao ;do useradd $n ;done
groupadd shuguo
chgrp shuguo /data
chmod 775 /data
for m in liubei guanyu zhangfei ;do usermod -aG shuguo $m;done

3.刘关张创建的文件,彼此之间可以读写,caocao及其他用户仅能读, caocao在该目录下也能创建文件,仅其自己可以读写,其他人无权限。
其他人对该目录,仅可访问
chmod g+s /data
umount /data; mount /dev/sdaX /data
setfacl -m u:caocao:rwx /data
vim ~caocao/.bashrc
umask 026

4.guanyu zhangfei仅能在该目录下创建100M的文件,caocao最多创建10个文件。
vim /etc/fstab
/dev/sdaX /data ext4 defaults,usrquota,grpquota 0 0
umount /data; mount -a
setquota guanyu 0 100M 0 0 /data/
edquota -p guanyu zhangfei
setquota caocao 0 0 0 10 /data/

5.guanyu zhangfei所创建的文件仅自己可以删除,liubei可以删除所有人的文件
chown liubei /data/
chmod o+t /data/

for n in $(seq 1 10);do
echo $n
done

n=1
while [ $n -le 10];do
echo $n
n=$[$n+1]
sleep 0.5s
done

n=1
until [ $n -gt 10 ];do
echo $n
n=$[$n+1]
sleep 0.5s
done

n=1
while true;do
echo $n
n=$[$n+1]
sleep 0.5s
if [ $n -eq 11 ];then
break
fi
done</font>

原文地址:http://blog.51cto.com/12947626/2072044

时间: 2024-10-10 01:23:08

马哥教育M28第十三天到第十五天学习总结的相关文章

《马哥教育协办GIAC、GOPS顶级技术峰会完美落幕》

GIAC.GOPS大会完美落幕 除了你.我.他,还有马哥教育陪你走过 马哥教育协办过多次全球大会,此次GIAC.GOPS全球互联网大会完美落幕,作为协办方我们也是很荣幸!马哥教育的创始人马哥带着马帮学员,让他们有更多的机会与大咖们交流分享,建立更广的人脉圈子. 本次大会可谓是大咖云集的一场盛会!各种技术总监.CTO. 通过本次大会就可以感受到马哥教育的教学精神.马哥教育不仅可以让你学到专业的技能,还有更多的机会与大咖们分享交流.我们不仅要学的好,丰富的人脉资源是我们职场上必要部分!相信在参加本次

马哥教育面授班-标准I/O和管道-课后小作业-2016年7月28

马哥教育面授班-7月28号作业 1 .将/etc/issue 文件中的内容转换为大写后保存至/tmp/issue.out 文件中 [[email protected] ~]# tr 'a-z' 'A-Z' </etc/issue | >> /tmp/issue.out [[email protected] ~]# cat /tmp/issue.out  CENTOS RELEASE 6.8 (FINAL) KERNEL \R ON AN \T \N \D \S MAGE EDUCATIO

马哥Linux培训马哥教育到底怎么样?马哥教育好不好?我来讲讲我的曲折经历!

2016年是我很迷茫的一年,不知道该学什么,不知道该去哪里,当时也有去培训的打算,也不确定培训什么,php?前端?or运维,同学有做PHP的,也有Java的也有前端的,也有做运维的,他们的建议我也听了不少,但是自己还是犹豫不决,怕花了钱到时找不到工作,后来感觉运维相对开发要容易一些,听同学说PHP今年也降温不少,学的人太多,没前两年好找了,当然,学得特好再另说.后来就去马哥考察了,当时去的时候是早上8点左右,看到有马哥的学员在校门口买早餐,包子,茶叶蛋什么的,我也没听课进去看看教室和学员聊了几句

【挨踢人物传】马永亮:感悟学习三境界 引领马哥教育的崛起(第19期)

[编者有话]        本期的嘉宾马永亮,一次误以为是"擅长"的选择,开始结缘计算机,然而当真正接触后才发现犹如"井底之蛙",此前的擅长根本不值一提,从天堂到地狱的落差,没有挫败他的信心和追求,反而激起了他更加强烈的求知欲望,在IT的道路上不断的成长感悟-- [本期人物档案] 个人信息: 51CTO账号:马哥教育 姓名:马永亮 性别:男 所在地:河南郑州 教育信息:研究生 关键词:马哥教育创办人 Linux系统运维专家 51CTO专家博主 51CTO学院签约讲师

马哥教育千万级PV实战大揭秘

又到了激动人心的架构实战项目实践时间,马哥教育面授班的学员都很期待这一刻的到来,因为经过此次洗礼,能让自己成长更多! 上周二,马哥教育张Sir带领18期面授班的学员们做千万PV级别的电商架构实战项目!新增的多台R710企业级服务器设备,轻松搭建大数据.云计算等高端实验环境,让实战,更加真实!相信经过这场实战的洗礼,小伙伴们架构技能会有更大提升! [张Sir生动讲解] [R710企业级服务器] [项目需求] 前期筹划阶段 马哥教育第18期面授班学员分成8个小组.每组的小组长先进行项目架构,然后按照

2016马哥教育重磅来袭--Python实战网络班

如何确保自己职场快人一步?如何成就非凡之路?前景开阔.上手容易.名师阵容.丰富一线案例的马哥2016全新python开发课程,你值得拥有! 在众多朋友的期待与欢呼中,马哥教育重磅推出了Python实战网络班. 到底马哥2016全新Python实战班都有什么特别之处呢?下面就来一睹为快吧!         如果有那么一丝丝的心动,请不要压抑自己的感情!速速联系马哥教育课程顾问们吧!(QQ:1661815153.2813150558.1660809109~)

一年一度,马哥教育年终福利全面来袭

一年一度,马哥教育年终福利全面来袭,等你来抢!扫描图片中二维码查看 满6000减200+腰枕 满8000减400+机械键盘 满10000减500+商用书包 推荐朋友送 (机械键盘.商用书包.专题课程)任选其一

马哥教育2017全新课程体系震撼发布

2017课程详细大纲可到官网或者联系课程顾问获取! 马哥教育历经8年发展,已成为泛运维培训领域领导品牌. 马哥教育课程不断更新和优化,全新2017版震撼上市,加入大量企业级实战课程! 马哥教育团队成员均为业内5年以上运维架构师.运维总监级别,拥有国内顶级师资团队. 马哥教育毕业学员在业内普遍被认可,过去8年学员毕业平均薪资可达12K! 多年来,以学员就业和满意度为目标,致力打造IT领域高端培训品牌. 目前已与业内多家互联网公司展开人才合作, 得到用人单位和合作伙伴认可! 2017全新课程,前20

北京大数据培训就选马哥教育:全新课程重磅出击

互联网的普及,使得人人都开始产生行为数据,在数据量越来越大的今天,大数据成为IT行业里技术含量最高.薪酬最高.成长空间最大的职位之一.企业在大数据方面的投入不断增加,对与人才的需求十分迫切. 据了解,未来3-5年,大数据行业人才缺口高达40万,部分企业甚至年薪20万招募0经验应届大学生从事大数据工作.马哥教育始终关注IT职业需求,为了帮助广大IT人实现年薪30万的大数据工程师梦想,重磅推出大数据课程. 深入了解行业发展,根据企业需求制定教学方案 马哥教育特聘10年开发经验的大数据专家.国内知名大