Linux

1. nmon监控

nmon -f -t -s 10 -c 60 -m /home/wuchen

-f 按标准格式输出文件

-t 输出中包括占用率较高的进程

-s 1 每1秒进行一次数据采集

-c 60 一共采集60次

2. 压缩/解压缩

2.1 tar

压缩 tar -zcvf count_result.tar.zip *.txt
解压 tar -zxvf count_result.tar.zip -C ./cllog (指定目录)

2.2 rar

将/etc 目录压缩为etc.rar 命令为:

rar a etc.rar /etc

将etc.rar 解压 命令为:

rar x etc.rar 或 unrar -e etc.tar

2.3 gzip

Linux压缩(保留源文件)的方法:

gzip –c filename > filename.gz

Linux解压缩(保留源文件)的方法:

gunzip –c filename.gz > filename

24.zip

解压(指定目录):

unzip -o xxx.zip -d ./

3. netstat

netstat -nl|grep 8088 查看端口号是否被占用

netstat -a 显示所有socket包括正在监听

​ -l 显示有在Listen的服务状态

​ -n 以网络IP地址代替名称,显示网络连接情形

​ -p 显示建立相关连接的程序名和PID

​ -t 显示TCP协议的连接情况

​ -u 显示UDP协议的连接情况

​ -s 显示每个协议的统计

​ -b 显示再创建每个连接或监听端口时涉及的可执行程序

​ -c 每个1秒就重新显示一遍

4. iptables

//禁用端口

iptables -I INPUT -s 15.94.0.208 -p tcp --dport 1210 -j DROP

//打开端口

iptables -I INPUT -s 15.94.0.208 -p tcp --dport 1210 -j ACCEPT

总结:

//操作前先备份iptables

cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak20190731

//禁用1210端口

iptables -I INPUT -p tcp --dport 1210 -j DROP

//只允许15.94.0.208访问1210端口

iptables -I INPUT -s 15.94.0.208 -p tcp --dport 1210 -j ACCEPT

//将规则保存到iptables中

service iptables save

//重启iptables

service iptables restart

//查看iptables内容

cat iptables

//查看当前规则

iptables -L INPUT --line-numbers

//清理规则(1是规则序号)

iptables -D INPUT 1

5. fio

--随机写

fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=psync -bs=4k -size=2G -numjobs=1 -runtime=120 -group_reporting -filename=/hdfsdata/2/fio_test1 -name=fio_randwrite_test

--顺序写

fio -direct=1 -iodepth=128 -rw=write -ioengine=psync -bs=4k -size=2G -numjobs=1 -runtime=120 -group_reporting -filename=/hdfsdata/2/fio_test2 -name=fio_write_test

--随机读

fio -direct=1 -iodepth=128 -rw=randread -ioengine=psync -bs=4k -size=2G -numjobs=1 -runtime=120 -group_reporting -filename=/hdfsdata/2/fio_test3 -name=fio_randread_test

--顺序读

fio -direct=1 -iodepth=128 -rw=read -ioengine=psync -bs=4k -size=2G -numjobs=1 -runtime=120 -group_reporting -filename=/hdfsdata/2/fio_test4 -name=fio_read_test

结果:

ARM ST1200MM0009 1.089 TB SAS

随机写(IOPS) 867 顺序写(BW) 177 MB/s

随机读(IOPS) 273 顺序读(BW) 202 MB/s

X86 TOSHIBA MG04ACA400N 3.637 TB SATA

随机写(IOPS) 1595 顺序写(BW) 114 MB/s

随机读(IOPS) 179 顺序读(BW) 122 MB/s

6. 释放缓存

echo 3 >/proc/sys/vm/drop_caches

7. 磁盘挂载

7.1 临时挂盘

mkdir -p /hdfsdata/7

--格式化

mkfs -t ext4 /dev/sdo

--挂载

mount /dev/sdo /hdfsdata/7

7.2 永久挂盘

[root@dgpzp4avkmbjbcgn-0319515 ~]# blkid
/dev/vda1: UUID="c45fd23f-2d60-4474-9e8d-1e329573fb26" TYPE="swap" 
/dev/vda2: UUID="cd57b66f-58d9-4a4c-8acd-f5b51fb0bfc7" TYPE="ext4" 
/dev/vdb: UUID="a514f895-73f0-4811-b4e4-852d4e9a2837" TYPE="ext4" 
[root@dgpzp4avkmbjbcgn-0319515 ~]# mkfs.ext4 /dev/vdb
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
13107200 inodes, 52428800 blocks
2621440 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2199912448
1600 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
4096000, 7962624, 11239424, 20480000, 23887872
Allocating group tables: done              
Writing inode tables: done              
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done  

[root@dgpzp4avkmbjbcgn-0319515 ~]# vim /etc/fstab
[root@dgpzp4avkmbjbcgn-0319515 ~]# reboot

8. 追踪路由

tracert 117.62.152.59
 1  <1 毫秒  <1 毫秒  <1 毫秒 10.1.25.254
 2   3 ms   3 ms   3 ms 100.112.128.1
 3   7 ms   6 ms   6 ms 222.190.2.69
 4  12 ms   3 ms   4 ms 117.62.152.59

9. 安装rpm包

安装:
rpm -ivh foo-1.0-l.i386.rpm

卸载:

rpm -e foo

升级:

rpm -Uvh foo-2.0-l.i386.rpm

10. 加载参数顺序

在刚登录Linux时,首先启动 /etc/profile 文件,

然后再启动用户目录下的 ~/.bash_profile、 ~/.bash_login或 ~/.profile文件中的其中一个,用户主目录下文件的执行的顺序为:

~/.bash_profile -> ~/.bash_login -> ~/.profile

如果 ~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件

因为在 ~/.bash_profile文件中一般会有下面的代码:

if [ -f ~/.bashrc ] ; then    
    . ./bashrc  
fi   

~/.bashrc中,一般还会有以下代码:

if [ -f /etc/bashrc ] ; then
    . /etc/bashrc  
fi  

所以,~/.bashrc会调用 /etc/bashrc文件。最后,在退出shell时,还会执行 ~/.bash_logout文件。

执行顺序为: /etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout

(1) /etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。

(2) /etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取(即每次新开一个终端,都会执行bashrc)。

(3) ~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。默认情况下,设置一些环境变量,执行用户的.bashrc文件。

(4) ~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。

(5) ~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。

(6) ~/.bash_profile: 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。

11. 软/硬链接

11.1 硬链接(hard link)

A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,A和B对文件系统来说是完全平等的。如果删除了其中一个,对另外一个没有影响。每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收。注:文件和文件名是不同的东西,rm A删除的只是A这个文件名,而A对应的数据块(文件)只有在inode节点链接数减少为0的时候才会被系统回收。

11.2 软链接(soft link)

A是B的软链接(A和B都是文件名),A的目录项中的inode节点号与B的目录项中的inode节点号不相同,A和B指向的是两个不同的inode,继而指向两块不同的数据块。但是A的数据块中存放的只是B的路径名(可以根据这个找到B的目录项)。A和B之间是“主从”关系,如果B被删除了,A仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。

11.3 主要区别、限制:

硬链接

a.不能对目录创建硬链接,原因有几种,最重要的是:文件系统不能存在链接环(目录创建时的".."除外,这个系统可以识别出来),存在环的后果会导致例如文件遍历等操作的混乱(du,pwd等命令的运作原理就是基于文件硬链接,顺便一提,ls -l结果的第二列也是文件的硬链接数,即inode节点的链接数)

b:不能对不同的文件系统创建硬链接,即两个文件名要在相同的文件系统下。

c:不能对不存在的文件创建硬链接,由原理即可知原因。

软链接

a.可以对目录创建软链接,遍历操作会忽略目录的软链接。

b:可以跨文件系统

c:可以对不存在的文件创建软链接,因为放的只是一个字符串,至于这个字符串是不是对于一个实际的文件,就是另外一回事了

ln 语法格式

硬链接:ln 源文件 链接名

软链接:ln -s 源文件 链接名

注意: 链接的源文件路径要写绝对路径否则会报错(no such file or diretory)