记录一些在Linux 运维中很有用平常又很少用到的命令,有些可能需要手工yum安装。逐渐完善中
1. 树状显示所有块设备lsblk, 优雅又好看,加上-a 参数可以显示空设备
[root@hk0001 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 512M 0 part /boot
├─sda2 8:2 0 8G 0 part /
├─sda3 8:3 0 4G 0 part
│ └─vg01-lv_appvol (dm-8) 253:8 0 4G 0 lvm /appvol
└─sda4 8:4 0 37.5G 0 part
├─vg00-lv_swap01 (dm-0) 253:0 0 4G 0 lvm [SWAP]
├─vg00-lv_var (dm-3) 253:3 0 12G 0 lvm /var
├─vg00-lv_home (dm-4) 253:4 0 1G 0 lvm /home
├─vg00-lv_tmp (dm-5) 253:5 0 6G 0 lvm /tmp
├─vg00-lv_kdump (dm-6) 253:6 0 4G 0 lvm /var/crash
└─vg00-lv_opt (dm-7) 253:7 0 10.5G 0 lvm /opt
sdb 8:16 0 250G 0 disk
└─sdb1 8:17 0 250G 0 part
├─vg02-lv_u01_sq (dm-1) 253:1 0 20G 0 lvm /u01/sq
└─vg02-lv_oradata (dm-2) 253:2 0 230G 0 lvm /oradata
sr0 11:0 1 1024M 0 rom
2. 测试磁盘性能hdparm,专业测试ATA/IDE硬盘的参数命令,通用测试的话用dd比较多
[root@hkl0001 ~]# hdparm -Tt /dev/sda
/dev/sda:
Timing cached reads: 10264 MB in 1.99 seconds = 5146.56 MB/sec
Timing buffered disk reads: 34 MB in 3.65 seconds = 9.33 MB/sec
[root@hkl0001 ~]# time dd if=/dev/zero of=test.dbf bs=8k count=30000 oflag=direct
30000+0 records in
30000+0 records out
245760000 bytes (246 MB) copied, 45.5978 s, 5.4 MB/s
real 0m45.625s
user 0m0.106s
sys 0m2.977s
--注意加上oflag=direct,dd测试的结果仅供参考
[root@hkl0001 ~]# dd if=test.dbf bs=8k count=300000 of=/dev/null
300000+0 records in
300000+0 records out
2457600000 bytes (2.5 GB) copied, 30.3845 s, 80.9 MB/s
3.文件分割和合并,将大文件平均切割为小文件用split,合并用 cat filename* > newFile_name
[root@10001 oracle]# ls -lrth test_sp.txt
-rw-r--r-- 1 oracle oinstall 15M May 7 06:43 test_sp.txt
[root@hkl102756 oracle]# wc -l test_sp.txt
31514 test_sp.txt
--按照行数进行分割,对3W行文件按照1w条记录进行分割
[root@10001 oracle]# split -l 10000 test_sp.txt -d -a 3 test_sp_
[root@10001 oracle]# ls -lrth test_sp*
-rw-r--r-- 1 oracle oinstall 15M May 7 06:43 test_sp.txt
-rw-r----- 1 root root 4.7M May 7 06:49 test_sp_000
-rw-r----- 1 root root 4.6M May 7 06:49 test_sp_001
-rw-r----- 1 root root 4.5M May 7 06:49 test_sp_002
-rw-r----- 1 root root 695K May 7 06:49 test_sp_003
--按照大小进行分割,每个5M进行分割
[root@10001 oracle]# split -b 5m test_sp.txt -d -a 3 test_sp_d
[root@10001 oracle]# ls -lrth test_sp_d*
-rw-r----- 1 root root 5.0M May 7 06:55 test_sp_d000
-rw-r----- 1 root root 5.0M May 7 06:55 test_sp_d001
-rw-r----- 1 root root 4.4M May 7 06:55 test_sp_d002
---合并文件比较简单
[root@10001 oracle]# cat test_sp_d* > test_mg.txt
[root@10001 oracle]# wc -l test_mg.txt
31514 test_mg.txt
[root@10001 oracle]# ls -lrth test_mg.txt
-rw-r----- 1 root root 15M May 7 06:57 test_mg.txt
4.一次性创建N个文件,有时候我们需要测试,一次性创建100个文件或文件夹
--Create 10 files,use touch Prefix{001..010}suffix
[oracle@00001 dir1]$ touch test{001..010}.log
[oracle@00001 dir1]$ ls -lrt
total 0
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test010.log
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test009.log
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test008.log
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test007.log
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test006.log
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test005.log
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test004.log
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test003.log
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test002.log
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test001.log
--Create 10 folders use mkdir Prefix{001..010}suffix
[oracle@00001 dir1]$ mkdir dir_{001..010}
--list folders only,use regular expression grep ^d which means find the file or folder start with 'd'
[oracle@00001 dir1]$ ls -l|grep ^d
drwxr-xr-x 2 oracle oinstall 4096 May 13 02:16 dir_001
drwxr-xr-x 2 oracle oinstall 4096 May 13 02:16 dir_002
drwxr-xr-x 2 oracle oinstall 4096 May 13 02:16 dir_003
drwxr-xr-x 2 oracle oinstall 4096 May 13 02:16 dir_004
drwxr-xr-x 2 oracle oinstall 4096 May 13 02:16 dir_005
drwxr-xr-x 2 oracle oinstall 4096 May 13 02:16 dir_006
drwxr-xr-x 2 oracle oinstall 4096 May 13 02:16 dir_007
drwxr-xr-x 2 oracle oinstall 4096 May 13 02:16 dir_008
drwxr-xr-x 2 oracle oinstall 4096 May 13 02:16 dir_009
drwxr-xr-x 2 oracle oinstall 4096 May 13 02:16 dir_010
-- similarly we can use grep ^- find the files
[oracle@00001 dir1]$ ls -l|grep ^-
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test001.log
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test002.log
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test003.log
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test004.log
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test005.log
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test006.log
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test007.log
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test008.log
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test009.log
-rw-r--r-- 1 oracle oinstall 0 May 13 02:08 test010.log
--extension Find out files with same name in different directories
--describe there are two folders dir1 and dir2
[oracle@00001 com_dir]$ ls -l
total 8
drwxr-xr-x 2 oracle oinstall 4096 May 13 02:21 dir1
drwxr-xr-x 2 oracle oinstall 4096 May 13 02:28 dir2
[oracle@00001 com_dir]$ for file in `find dir1 -type f | awk -F"/" '{print $NF}'`; do find dir2 -type f -iname "$file"| awk -F"/" '{print $NF}' ; done
test006.log
test005.log
test010.log
test007.log
test008.log
test009.log