NSF Back-end Dev Engineer

linux

2019-12-05
nsf

linux其他命令

1. 文件相关

1 查找大文件

列举出当前目录所有大于800M的文件

find . -type f -size +800M

第一个方法只用到了一个命令find,它能够帮我们做一些文件查找的操作。它常用的参数有:

  • type:类型。POSIX支持——b:块设备文档、d:目录、c:字符设备文档、P:管道文档、l:符号链接文档、f:普通文档
  • name:按文件名查找。支持*模糊匹配
  • size:文件大小。+表示大于,-表示小于。支持k,M,G单位。
find . -type f -size +800M xargs ls -lh

第二个方法又进了一步,不仅把大于800M的文件列出来,还进一步对他们分别做了ls -lh操作。这里新出现了一个xargs命令。它的作用就是把管道进来的参数切分成多个部分,分别作为新的参数调用后续的命令。比如这里,xargs管道进来的是找到的所有文件绝对路径,把他们作为ls -lh参数,也就是打印出每个文件的具体信息。

find . -type f -size +800M xargs du -hm sort -nr

第三个方法则分别对找出来的数据进行排序。du命令即disk usage,是用来统计文件占用磁盘大小的。sort顾名思义是排序的。具体就不说了,这两个是比较简单的命令。

2 查找大目录

du -h –max-depth=1

du -hm –max-depth=2 sort -n
du -hm –max-depth=2 sort -nr head -12

2.注意

1.删除文件

删除文件后磁盘空间可能不会立即删除,删除文件作为一个进程可能会受到系统其他进程影响,比如删除的文件正在被其他进程读写等,如果确定删除的文件可以立即删除,可以lsof grep delete查找删除文件的进程,杀掉进程即可

2.隐藏文件操作

正常操作可能对隐藏文件无用,比如文件复制命令如下:

cp -a /home/u/. /home/user1

xfs文件系统使用文件夹配额

 rm -f /etc/projects /etc/projid
 mount -o prjquota /dev/sda4 /data
 xfs_quota -x -c 'project -s -p /data/vm1 1000' /data
 xfs_quota -x -c 'limit -p bhard=1g 1000' /data
 ps:http://hustcat.github.io/xfs_quota_usage/
修改系统空间配额
此部分改动需要重启机器,建议安装系统后手动修改
1./etc/default/grub,修改
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto  vconsole.keymap=us rhgb quiet"
变成这样
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=centos/root crashkernel=auto  vconsole.keymap=us rhgb quiet rootflags=uquota,pquota"
2.cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.orig
3.grub2-mkconfig -o /boot/grub2/grub.cfg
4.reboot
5.echo "11:/" >> /etc/projects
6.echo "myquotaproject:11" >> /etc/projid
7.xfs_quota -x -c "project -s myquotaproject"
注:xfs_quota -x -c "print " /home或者xfs_quota -x -c "report -pbih " /查看当前配额情况

gluster卷使用文件夹配额

1 理论基础

1.1 概念

GlusterFS目录限额,允许你根据目录或卷配置限制磁盘空间的使用量

1.2 配额的分类

1.2.1 目录级别(Director level)

根据目录级别去限制空间使用量

1.2.2 卷级别(Volume level)

根据GlusterFS卷级别去限制空间使用量

1.3 关于路径的说明

1)Gluster的路径概念
如果你将卷挂载到某系统的/mnt目录
mount -t glusterfs GlusterH01.cmdschool.org:/gv0 /mnt
如上所示,被挂载的接口目录或被挂载目录视为Gluster磁盘的根,故Gluster根(“/”)是指:
GlusterH01.cmdschool.org:/gv0 #或挂载点(/mnt)

2)在多层次目录结构,严格的磁盘限制将被强制执行。

实践

2.1 环境配置

请参阅下文配置分布式存储的一种并创建Gluster卷gv0

2.2 开启限额

1)命令表达式
gluster volume quota VolumeName enable

2)范例
In GlusterH01:
gluster volume quota gv0 enable

2.3 关闭限额

1)命令表达式
gluster volume quota VolumeName disable

2)范例
In GlusterH01 :

gluster volume quota gv0 disable

2.4 设置或替换磁盘限制

2.4.1 根据卷限制

1)命令表达式
gluster volume quota VolumeName limit-usage / size

2)范例
In GlusterH01:
gluster volume quota gv0 limit-usage / 10GB

2.4.2 根据目录限制

1)命令表达式
gluster volume quota VolumeName limit-usage DirectoryPath LimitSize

2)范例
你可以在存储环境创建一个新的目录来配置磁盘限制或使用已存在的目录配置磁盘限制,以下演示对新建目录的限制:
In GlusterH01:
step1 挂载卷
mount -t glusterfs GlusterH01.cmdschool.org:/gv0 /mnt
step2 挂载目录下创建文件夹
mkdir /mnt/dir1
step3 卸载挂载
umount /mnt
step4 检查本机目录
ls /dir1
显示如下:
ls: cannot access /dir1: No such file or directory
step5 配置目录限制
gluster volume quota gv0 limit-usage /dir1 1GB
显示如下:
volume quota : success
注:故以上/dir1表示的是“GlusterH01.cmdschool.org:/gv0/dir1”而不是系统目录/dir1。

2.4.3 辅助挂载点

当第一次配置配额限制,通过以下命令可以查看Gluster卷的辅助挂载点:
 ls -l /var/run/gluster/gv0/

rpm命令详解

1.利用 Downloadonly 插件下载 RPM 软件包及其所有依赖包

yum install yum-plugin-downloadonly

现在,运行以下命令去下载一个 RPM 软件包
yum install --downloadonly <package-name>

你也可以下载和保存软件包到任何位置,你可以通过 –downloaddir 选项来指定
yum install --downloadonly --downloaddir=<directory> <package-name>

例子:
yum install --downloadonly --downloaddir=/root/mypackages/ httpd

2.使用 Yumdownloader 工具来下载 RPM 软件包及其所有依赖包

yum install yum-utils

一旦安装完成,运行如下命令去下载一个软件包,例如 httpd
yumdownloader httpd

为了根据所有依赖性下载软件包,我们使用 --resolve参数:
yumdownloader --resolve httpd

默认情况下,Yumdownloader 将会下载软件包到当前工作目录下。
为了将软件下载到一个特定的目录下,我们使用 --destdir 参数:
yumdownloader --resolve --destdir=/root/mypackages/ httpd

不像 Downloadonly 插件,Yumdownload 可以下载一组相关的软件包。
yumdownloader "@Development Tools" --resolve --destdir /root/mypackages/

linux学习

1.linux打包压缩命令汇总

1.1先直接给出各种解压缩命令

.tar
压缩:tar cvf FileName.tar FileName
解压:tar xvf FileName.tar
--------------------------------------------- 
.gz
解压1:gunzip FileName.gz 
解压2:gzip -d FileName.gz 
压缩:gzip FileName 
.tar.gz 
解压:tar zxvf FileName.tar.gz 
压缩:tar zcvf FileName.tar.gz DirName 
--------------------------------------------- 
.bz2 
解压1:bzip2 -d FileName.bz2 
解压2:bunzip2 FileName.bz2 
压缩: bzip2 -z FileName 
.tar.bz2 
解压:tar jxvf FileName.tar.bz2 
压缩:tar jcvf FileName.tar.bz2 DirName 
--------------------------------------------- 
.bz 
解压1:bzip2 -d FileName.bz 
解压2:bunzip2 FileName.bz 
压缩:未知 
.tar.bz 
解压:tar jxvf FileName.tar.bz 
压缩:未知 
--------------------------------------------- 
.Z 
解压:uncompress FileName.Z 
压缩:compress FileName 
.tar.Z 
解压:tar Zxvf FileName.tar.Z 
压缩:tar Zcvf FileName.tar.Z DirName 
--------------------------------------------- 
.tgz 
解压:tar zxvf FileName.tgz 
压缩:未知 
.tar.tgz 
解压:tar zxvf FileName.tar.tgz 
压缩:tar zcvf FileName.tar.tgz FileName 
--------------------------------------------- 
.zip 
解压:unzip FileName.zip 
压缩:zip FileName.zip DirName 
--------------------------------------------- 
.rar 
解压:rar a FileName.rar 
压缩:rar e FileName.rar 

1.2各个不同后缀的含义

.tar打包格式:tar程序打包的数据,并没有压缩过
.z格式:compress程序压缩的文件
.gz压缩格式:gzip程序压缩的文件 .bz2压缩格式:bzip2程序压缩的文件
.tar.gz打包压缩:tar程序打包的文件,其中并且经过 gzip 的压缩
.tar.bz2打包压缩:tar程序打包的文件,其中并且经过 bzip2 的压缩

tar是打包命令,比较常见,下面给出他的不同参数的含义

-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

1.3注意事项

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但这五个命令只能用其中一个。

下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-z:有compress属性的
-v:显示所有过程
-o:将文件解开到标准输出

Gluster学习

1.安装

http://docs.gluster.org/en/latest/Quick-Start-Guide/Quickstart/

2.部署

2.1 Distributed Glusterfs Volume(无冗余存储)

image

gluster volume create NEW-VOLNAME [transport [tcp | rdma | tcp,rdma]] NEW-BRICK…
# gluster volume create test-volume server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
Creation of test-volume has been successful
Please start the volume to access data

2.2 Replicated Glusterfs Volume(冗余存储)

image

gluster volume create NEW-VOLNAME [replica COUNT] [transport [tcp | rdma | tcp,rdma]] NEW-BRICK…
# gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2
Creation of test-volume has been successful
Please start the volume to access data

2.3 Distributed Replicated Glusterfs Volume(选择性冗余存储)

image

gluster volume create NEW-VOLNAME [replica COUNT] [transport [tcp | rdma | tcp,rdma]] NEW-BRICK…
# gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
Creation of test-volume has been successful
Please start the volume to access data

2.4 Striped Glusterfs Volume(一个大文件拆分存储多服务器)

image

gluster volume create NEW-VOLNAME [stripe COUNT] [transport [tcp | dma | tcp,rdma]] NEW-BRICK…
# gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2
Creation of test-volume has been successful
Please start the volume to access data

2.5 Distributed Striped Glusterfs Volume(一个大文件拆分存储多块)

image

gluster volume create NEW-VOLNAME [stripe COUNT] [transport [tcp | rdma | tcp,rdma]] NEW-BRICK…
# gluster volume create test-volume stripe 4 transport tcp
 server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4 server5:/exp5 server6:/exp6 server7:/exp7 server8:/exp8
Creation of test-volume has been successful
Please start the volume to access data.

2.6 Distributed Dispersed Volumes(纠错卷)

gluster volume create [disperse []] [redundancy ] [transport tcp | rdma | tcp,rdma]
# gluster volume create test-volume disperse 4 server{1..4}:/bricks/test-volume
There isn't an optimal redundancy value for this configuration. Do you want to create the volume with redundancy 1 ? (y/n)

3.开机启动项

启动gluster服务:systemctl enable glusterd
关闭防火墙:systemctl disable firewalld

4.停止(启动)卷

gluster volume stop gv0(停止卷)
gluster volume start gv0(启动卷)

5.扩容卷

原有节点上增加brick:# gluster volume add-brick <VOLNAME> <NEW-BRICK>
新增存储节点新增brick:
	创建2节点的rc复制卷
	创建bricks并mount到硬盘
	新节点安装gluster启动服务
	修改hosts文件
	验证是否能互相探测(原有集群得先探测新节点,新的节点才能探测到集群原有节点)
	添加brick# gluster volume add-brick <VOLNAME> <NEW-BRICK>(复制卷添加的brick数量必须为原有集群brick数量的倍数)
	平衡卷gluster volume rebalance <volname> fix-layout start && gluster volume rebalance  <volname> start
	新增节点必须挂载卷才能在挂载目录下看到卷内文件(未解决:新增节点brick目录下无卷内文件)
注意事项:
1.	不能在挂载volume卷节点外节点增加文件。
2.	可以在volume卷挂载节点的卷目录和卷挂载目录下增加文件,效果一致,比如:mount -t glusterfs g1:/gv0 /mnt ,gv0卷对应的目录为mkdir -p /data/brick1/gv0
3.	可以在多节点增加文件,前提是挂载volume卷。
4.	存储节点宕机后卷会自动修复不需人工干预

6.替换硬盘

硬盘上可能存在多个brick,替换硬盘即替换brick,保证需要替换的brick状态为N,执行replace-brick命令
、# gluster volume replace-brick r2 Server1:/home/gfs/r2_0 Server1:/home/gfs/r2_5 commit force
volume replace-brick: success: replace-brick commit successful

上一篇 docker命令

Comments

Content