持续更新中…

Linux

常用命令

  1. 目录树
    [root@hd101 /]# find . -print 2>/dev/null|awk '!/\.$/ {for (i=1;i<NF;i++){d=length($i);if ( d < 5 && i != 1 )d=5;printf("%"d"s","|")}print "---"$NF}' FS='/'
    
  2. 文本批量替换
    [root@hd101 /]# grep '=srcTxt' -rl --include="target.log" ./ | xargs sed -i "s/=srcTxt/=tarTxt/g"
    
    说明 : 将"./“文件夹下所有名为"target.log"的文件中的"srcTxt"替换为"tarTxt”
  3. 查找包含文本的文件
    [root@hd101 /]# grep 'txt' -rl --include="target.log" ./ |xargs grep 'txt'
    
    说明 : 遍历"./"文件夹获取所有名为"target.log"且包含"txt"文本的文件
  4. 查看本机公网IP
    [root@hd101 /]# curl ifconfig.co
    [root@hd101 /]# curl cip.cc
    
  5. VIM 下修改文件编码
    [root@hd101 /]# :set fileencoding=utf-8
    
  6. 清理30天前的文件
    [root@hd101 /]# find . -mtime +30 -name "*" -exec rm -rf {} \;
    
    说明 : 对".“文件夹下所有名为”*"的文件执行"rm -rf"命令
  7. 查看文件占用空间
    [root@hd101 /]# du -ah --max-depth=1 | sort -nr
    
    说明 : 详尽"du"命令请跳至☞https://blog.csdn.net/WFSLIFE/article/details/124539448?spm=1001.2014.3001.5501
  8. 查看访问端口的IP
    [root@hd101 /]# netstat -ntu | grep tcp |grep 9092| awk '{print $5}' | cut -d: -f1 | sort | uniq -c
    
    说明 : 查看访问本机"9092"端口的IP
  9. 临时关闭防火墙,重启后会重新自动打开
    [root@hd101 /]# systemctl stop firewalld
    
    说明 : systemctl start firewalld; systemctl restart firewalld
  10. 检查防火墙状态
    [root@hd101 /]# firewall-cmd --state
    [root@hd101 /]# firewall-cmd --list-all
    [root@hd101 /]# systemctl status firewalld
    
  11. 关闭防火墙自启自启
    [root@hd101 /]# systemctl disable firewalld
    
  12. 开启防火墙自启自启
    [root@hd101 /]# systemctl enable firewalld
    
  13. 系统消息
    [root@hd101 /]# conntrack
    [root@hd101 /]# dmesg -T | grep conntrack
    
  14. 更新服务器硬件时间
    [root@hd101 /]# hwclock --systohc
    
  15. raid盘rebuild提速, rebuild之后记得改回来
    [root@hd101 /]# sysctl dev.raid.speed_limit_min
    [root@hd101 /]# sysctl -w dev.raid.speed_limit_min=200000
    
  16. nc + tar 数据传输
    接收端(绝对路径)
    [root@hd101 /]# nc -l 9999 |tar -C /home/gpadmin/nctest/ -xPf - 
    发送端(相对路径)
    [root@hd101 /]# tar -cf - ./* |nc gp-segment-08-1 9999
    

配置 – 取消打开文件数限制

  1. 会话级限制
    [root@hd101 /]# ulimit -n 1000
    
    说明 : 表示将当前shell的当前用户所有进程能打开的最大文件数量设置为1000
  2. 用户级限制
    [root@hd101 /]# sudo vim /etc/security/limits.conf
    文件的末尾加入以下内容
    * soft    nofile  1024000
    * hard    nofile  1024000
    * soft    nproc   unlimited
    * hard    nproc   unlimited
    
    说明 :
    • 第一列的 * 表示针对所有用户
    • soft nofile : 表示软限制 ( 代表警告的设定, 可以超过这个设定值, 但是超过后会有警告 ) ;
    • hard nofile : 表示硬限制 ( 代表严格的设定,不允许超过这个设定的值 );
    • 软限制要小于等于硬限制。
    • nofile : 是每个用户所有进程可以打开的文件数的限制
    • nproc : 是对每个用户创建的进程数的限制
    • 重启后生效
  3. 系统级限制
    [root@hd101 /]# sudo cat /proc/sys/fs/file-max
    1024000
    

总结 :

  1. /proc/sys/fs/file-max 限制不了 /etc/security/limits.conf
  2. 只有root用户才有权限修改 /etc/security/limits.conf
  3. 对于非root用户, /etc/security/limits.conf会限制 ulimit -n,但是限制不了 root 用户
  4. 对于非root用户, ulimit -n只能越设置越小, root用户则无限制
  5. 任何用户对 ulimit -n 的修改只在当前环境有效, 退出后失效, 重新登录新来后, ulimit -n由 limits.conf 决定
  6. 如果 limits.conf 没有做设定, 则默认值是1024
  7. 当前环境的用户所有进程能打开的最大问价数量由 ulimit -n 决定

配置 – coredump 的配置方法

  1. 永久开启
    [root@hd101 /]# sudo vim /etc/security/limits.conf
    去掉 soft core 0 一行前面的注释
    同时,0 改为 unlimited 或 某个数值,* soft    core    204800
    * hard    core    204800
    
  2. 验证是否开启:
    [root@hd101 /]# sudo ulimit -c
    0 : 表示未开启。
    204800 : 表示已经开启
    coredump 文件大小为 204800, 单位为 blocks。
    

配置 – 内存锁 memlock

  1. [root@hd101 /]# sudo vim /etc/security/limits.conf
    * soft    memlock unlimited
    * hard    memlock unlimited
    

查看服务器硬件信息

  1. 查看服务器型号
    [root@hd101 /]# dmidecode | grep "System Information" -A8
    System Information
            Manufacturer: VMware, Inc.
            Product Name: VMware Virtual Platform
            Version: None
            Serial Number: VMware-42 3a 5c b1 9a c2 7c 65-b9 57 19 fe 7a 49 2c e6
            UUID: b15c3a42-c29a-657c-b957-19fe7a492ce6
            Wake-up Type: Power Switch
            SKU Number: Not Specified
            Family: Not Specified
    	```
    
  2. 查看主板型号
    [root@etl /]# dmidecode | grep "Base Board Information" -A10
    Base Board Information
            Manufacturer: Intel Corporation
            Product Name: 440BX Desktop Reference Platform
            Version: None
            Serial Number: None
            Asset Tag: Not Specified
            Features: None
            Location In Chassis: Not Specified
            Chassis Handle: 0x0000
            Type: Unknown
            Contained Object Handles: 0
    	```
    
  3. 查看BIOS信息
    [root@etl /]# dmidecode -t bios
    # dmidecode 3.2
    Getting SMBIOS data from sysfs.
    SMBIOS 2.7 present.
    
    Handle 0x0000, DMI type 0, 24 bytes
    BIOS Information
            Vendor: Phoenix Technologies LTD
            Version: 6.00
            Release Date: 12/12/2018
            Address: 0xEA490
            Runtime Size: 88944 bytes
            ROM Size: 64 kB
            Characteristics:
                    ISA is supported
                    PCI is supported
                    PC Card (PCMCIA) is supported
                    PNP is supported
                    APM is supported
                    BIOS is upgradeable
                    BIOS shadowing is allowed
                    ESCD support is available
                    Boot from CD is supported
                    Selectable boot is supported
                    EDD is supported
                    Print screen service is supported (int 5h)
                    8042 keyboard services are supported (int 9h)
                    Serial services are supported (int 14h)
                    Printer services are supported (int 17h)
                    CGA/mono video services are supported (int 10h)
                    ACPI is supported
                    Smart battery is supported
                    BIOS boot specification is supported
                    Function key-initiated network boot is supported
                    Targeted content distribution is supported
            BIOS Revision: 4.6
            Firmware Revision: 0.0
    
  4. 查看内存槽及内存条
    [root@etl ~]# dmidecode -t memory | grep "Memory Controller Information" -A35
    Memory Controller Information
            Error Detecting Method: None
            Error Correcting Capabilities:
                    None
            Supported Interleave: One-way Interleave
            Current Interleave: One-way Interleave
            Maximum Memory Module Size: 32768 MB
            Maximum Total Memory Size: 491520 MB
            Supported Speeds:
                    70 ns
                    60 ns
            Supported Memory Types:
                    FPM
                    EDO
                    DIMM
                    SDRAM
            Memory Module Voltage: 3.3 V
            Associated Memory Slots: 15
                    0x0006
                    0x0007
                    0x0008
                    0x0009
                    0x000A
                    0x000B
                    0x000C
                    0x000D
                    0x000E
                    0x000F
                    0x0010
                    0x0011
                    0x0012
                    0x0013
                    0x0014
            Enabled Error Correcting Capabilities:
                    None
    [root@etl ~]# dmidecode -t memory | grep "Physical Memory Array" -A6
    Physical Memory Array
            Location: System Board Or Motherboard
            Use: System Memory
            Error Correction Type: None
            Maximum Capacity: 33 GB
            Error Information Handle: Not Provided
            Number Of Devices: 64
    
  5. 查看pci信息,即主板所有硬件槽信息
    [root@etl ~]# lspci
    00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 01)
    00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 01)
    00:07.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 08)
    00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
    00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
    00:07.7 System peripheral: VMware Virtual Machine Communication Interface (rev 10)
    00:0f.0 VGA compatible controller: VMware SVGA II Adapter
    00:11.0 PCI bridge: VMware PCI bridge (rev 02)
    00:15.0 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:15.1 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:15.2 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:15.3 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:15.4 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:15.5 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:15.6 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:15.7 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:16.0 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:16.1 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:16.2 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:16.3 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:16.4 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:16.5 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:16.6 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:16.7 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:17.0 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:17.1 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:17.2 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:17.3 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:17.4 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:17.5 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:17.6 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:17.7 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:18.0 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:18.1 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:18.2 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:18.3 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:18.4 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:18.5 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:18.6 PCI bridge: VMware PCI Express Root Port (rev 01)
    00:18.7 PCI bridge: VMware PCI Express Root Port (rev 01)
    02:01.0 SATA controller: VMware SATA AHCI controller
    03:00.0 Serial Attached SCSI controller: VMware PVSCSI SCSI Controller (rev 02)
    0b:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
    

查看CPU硬件信息

  1. 查看cpu型号
    [root@etl ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
     16  Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
    
  2. 查看系统中实际物理CPU的数量(物理)
    [root@etl ~]# grep 'physical id' /proc/cpuinfo | sort | uniq | wc -l
    16
    
  3. 系统中实际物理CPU的数量(核数)
    [root@etl ~]# cat /proc/cpuinfo | grep 'processor' | wc -l
    16
    
  4. 查看每个物理CPU中core的个数(即核数)
    [root@etl ~]# cat /proc/cpuinfo | grep "cores" | uniq
    cpu cores       : 1
    
  5. 查看CPU的主频
    [root@etl ~]# cat /proc/cpuinfo | grep MHz | uniq
    cpu MHz         : 2199.998
    
  6. 查看CPU的相关信息
    [root@etl ~]# lscpu
    Architecture:          x86_64
    CPU op-mode(s):        32-bit, 64-bit
    Byte Order:            Little Endian
    CPU(s):                16
    On-line CPU(s) list:   0-15
    Thread(s) per core:    1
    Core(s) per socket:    1
    座:                 16
    NUMA 节点:         2
    厂商 ID:           GenuineIntel
    CPU 系列:          6
    型号:              79
    型号名称:        Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
    步进:              0
    CPU MHz:             2199.998
    BogoMIPS:            4399.99
    超管理器厂商:  VMware
    虚拟化类型:     完全
    L1d 缓存:          32K
    L1i 缓存:          32K
    L2 缓存:           256K
    L3 缓存:           30720K
    NUMA 节点0 CPU:    0-7
    NUMA 节点1 CPU:    8-15
    Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap xsaveopt arat md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities
    
  7. 查看cpu运行模式
    [root@etl ~]# getconf LONG_BIT
    64
    
  8. 查看cpu是否支持64bit
    [root@etl ~]# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
    16
    
    说明 : 结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit

查看内存信息

  1. 查看内存的使用情况 /proc/meminfo
    [root@etl ~]# cat /proc/meminfo 
    MemTotal:       32778484 kB
    MemFree:         4500892 kB
    MemAvailable:   10443612 kB
    Buffers:              28 kB
    Cached:          5103804 kB
    SwapCached:        50972 kB
    Active:         20923752 kB
    Inactive:        4685580 kB
    Active(anon):   17482576 kB
    Inactive(anon):  3263584 kB
    Active(file):    3441176 kB
    Inactive(file):  1421996 kB
    Unevictable:           0 kB
    Mlocked:               0 kB
    SwapTotal:      16777212 kB
    SwapFree:       16536572 kB
    Dirty:               924 kB
    Writeback:             0 kB
    AnonPages:      20453628 kB
    Mapped:           423420 kB
    Shmem:            240660 kB
    Slab:            2115364 kB
    SReclaimable:    1508012 kB
    SUnreclaim:       607352 kB
    KernelStack:       29808 kB
    PageTables:       139368 kB
    NFS_Unstable:          0 kB
    Bounce:                0 kB
    WritebackTmp:          0 kB
    CommitLimit:    33166452 kB
    Committed_AS:   83019168 kB
    VmallocTotal:   34359738367 kB
    VmallocUsed:      213096 kB
    VmallocChunk:   34342297596 kB
    Percpu:            12544 kB
    HardwareCorrupted:     0 kB
    AnonHugePages:    196608 kB
    CmaTotal:              0 kB
    CmaFree:               0 kB
    HugePages_Total:       0
    HugePages_Free:        0
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:       2048 kB
    DirectMap4k:      180096 kB
    DirectMap2M:     8208384 kB
    DirectMap1G:    27262976 kB
    
    说明 : 这个动态更新的虚拟文件实际上是许多其他内存相关工具 (如 : free / ps / top) 等的组合显示
  2. 查看内存的使用情况
    [root@etl ~]# free -h
                  total        used        free      shared  buff/cache   available
    Mem:            31G         20G        4.2G        235M        6.3G        9.8G
    Swap:           15G        235M         15G
    

查看硬盘信息

  1. 查看挂接的分区状态
    [root@etl ~]# fdisk -l |grep "磁盘 "
    磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区
    磁盘 /dev/sdb:536.9 GB, 536870912000 字节,1048576000 个扇区
    磁盘 /dev/mapper/centos-root:89.7 GB, 89653248000 字节,175104000 个扇区
    磁盘 /dev/mapper/centos-swap:17.2 GB, 17179869184 字节,33554432 个扇区
    磁盘 /dev/mapper/zdata-zdata:536.9 GB, 536866717696 字节,1048567808 个扇区
    
  2. 查看硬盘和分区分布
    [root@etl ~]# lsblk
    NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda               8:0    0  100G  0 disk 
    ├─sda1            8:1    0  512M  0 part /boot
    └─sda2            8:2    0 99.5G  0 part 
      ├─centos-root 253:0    0 83.5G  0 lvm  /
      └─centos-swap 253:1    0   16G  0 lvm  [SWAP]
    sdb               8:16   0  500G  0 disk 
    └─zdata-zdata   253:2    0  500G  0 lvm  /zdata
    sr0              11:0    1  4.5G  0 rom
    
    说明 : NAME 设备名、MAJ:MIN 主:次 设备号、RM removable device、SIZE size of the device、RO 只读设备、TYPE device type、MOUNTPOINT where the device is mounted
  3. 查看硬盘和分区的详细信息
    [root@etl ~]# fdisk -l
    
    磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理)512 字节 / 512 字节
    I/O 大小(最小/最佳)512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x000c217c
    
       设备 Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048     1050623      524288   83  Linux
    /dev/sda2         1050624   209715199   104332288   8e  Linux LVM
    
    磁盘 /dev/sdb:536.9 GB, 536870912000 字节,1048576000 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理)512 字节 / 512 字节
    I/O 大小(最小/最佳)512 字节 / 512 字节
    
    磁盘 /dev/mapper/centos-root:89.7 GB, 89653248000 字节,175104000 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理)512 字节 / 512 字节
    I/O 大小(最小/最佳)512 字节 / 512 字节
    
    磁盘 /dev/mapper/centos-swap:17.2 GB, 17179869184 字节,33554432 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理)512 字节 / 512 字节
    I/O 大小(最小/最佳)512 字节 / 512 字节
    
    磁盘 /dev/mapper/zdata-zdata:536.9 GB, 536866717696 字节,1048567808 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理)512 字节 / 512 字节
    I/O 大小(最小/最佳)512 字节 / 512 字节
    
  4. 查看挂接的分区状态
    [root@etl ~]# mount | column -t
    sysfs                    on  /sys                                                                                            type  sysfs       (rw,nosuid,nodev,noexec,relatime,seclabel)
    proc                     on  /proc                                                                                           type  proc        (rw,nosuid,nodev,noexec,relatime)
    devtmpfs                 on  /dev                                                                                            type  devtmpfs    (rw,nosuid,seclabel,size=16372276k,nr_inodes=4093069,mode=755)
    securityfs               on  /sys/kernel/security                                                                            type  securityfs  (rw,nosuid,nodev,noexec,relatime)
    tmpfs                    on  /dev/shm                                                                                        type  tmpfs       (rw,nosuid,nodev,seclabel)
    devpts                   on  /dev/pts                                                                                        type  devpts      (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
    tmpfs                    on  /run                                                                                            type  tmpfs       (rw,nosuid,nodev,seclabel,mode=755)
    
  5. 查看硬盘使用情况
    [root@etl ~]# df -hT
    文件系统                类型        容量  已用   可用  已用% 挂载点
    devtmpfs                devtmpfs   16G     0   16G    0% /dev
    tmpfs                   tmpfs      16G     0   16G    0% /dev/shm
    tmpfs                   tmpfs      16G   99M   16G    1% /run
    tmpfs                   tmpfs      16G     0   16G    0% /sys/fs/cgroup
    /dev/mapper/centos-root xfs        84G  6.4G   78G    8% /
    /dev/sda1               xfs       509M  178M  332M   35% /boot
    /dev/mapper/zdata-zdata xfs       500G   18G  483G    4% /zdata
    tmpfs                   tmpfs     3.2G   16K  3.2G    1% /run/user/42
    tmpfs                   tmpfs     3.2G     0  3.2G    0% /run/user/0
    overlay                 overlay   500G   18G  483G    4% /zdata/docker/overlay2/ff22a546ad3793ab7cc9f9750439b32cf63eff8d3feca927b846769af50b0945/merged
    overlay                 overlay   500G   18G  483G    4% /zdata/docker/overlay2/a267f23c1cda8ac0641e8d7d3965a18a81546ce5531374f2ca583f6b0d8dbce0/merged
    overlay                 overlay   500G   18G  483G    4% /zdata/docker/overlay2/db59d03119d2deea4a0e17ec1a29460f5feba7a56bb29dd2389dcaadf56437a7/merged
    overlay                 overlay   500G   18G  483G    4% /zdata/docker/overlay2/86aa5c1b06af3b55c0a427254a8323c43d99ac2b8679a342350dfcb134160cea/merged
    overlay                 overlay   500G   18G  483G    4% /zdata/docker/overlay2/db2b2b68e08aae188f7735cab2c598fad416995223e05d0840d0e516075fe4a9/merged
    overlay                 overlay   500G   18G  483G    4% /zdata/docker/overlay2/85ee61c95098c9239cb1c504c9617ff323324f6d6d5b83e06aa50f5eb2948bab/merged
    overlay                 overlay   500G   18G  483G    4% /zdata/docker/overlay2/86d0abfa455157e156fdc149d63d9ac63affcf6c732f918cc8da84b78b8269e0/merged
    overlay                 overlay   500G   18G  483G    4% /zdata/docker/overlay2/57d0a2c759d8ca7acc1954404f28f5457979b6e2e9b569cd981e6b83bc7f24c3/merged
    
  6. 硬盘检测
    [root@Master ~]# smartctl -a /dev/sda
    smartctl 5.43 2012-06-30 r3573 [x86_64-linux-2.6.32-642.el6.x86_64] (local build)
    Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net
    
    Vendor:               HP      
    Product:              LOGICAL VOLUME  
    Revision:             3.56
    User Capacity:        299,966,445,568 bytes [299 GB]
    Logical block size:   512 bytes
    Logical Unit id:      0x600508b1001cc8a1b9ec4dacc5ab35dc
    Serial number:        PDNNK0BRH9U0AG  
    Device type:          disk
    Local Time is:        Mon Feb  5 13:13:33 2018 CST
    Device supports SMART and is Enabled
    Temperature Warning Disabled or Not Supported
    SMART Health Status: OK
    
    Error Counter logging not supported
    Device does not support Self Test logging
    

查看网卡信息

  1. 查看网卡硬件信息
    [root@etl ~]# lspci | grep -i 'eth'
    0b:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
    
  2. 查看系统的所有网络接口
    [root@etl ~]# ifconfig -a
    [root@etl ~]# ifconfig -a
    
  3. 查看某个网络接口的详细信息,例如ens192的详细参数和指标
    [root@etl ~]# ethtool ens192
    Settings for ens192:
            Supported ports: [ TP ]
            Supported link modes:   1000baseT/Full 
                                    10000baseT/Full 
            Supported pause frame use: No
            Supports auto-negotiation: No
            Supported FEC modes: Not reported
            Advertised link modes:  Not reported
            Advertised pause frame use: No
            Advertised auto-negotiation: No
            Advertised FEC modes: Not reported
            Speed: 10000Mb/s
            Duplex: Full
            Port: Twisted Pair
            PHYAD: 0
            Transceiver: internal
            Auto-negotiation: off
            MDI-X: Unknown
            Supports Wake-on: uag
            Wake-on: d
            Link detected: yes
    
  4. 查看所有网卡的链路状态
    [root@etl ~]# for i in `seq 0 9`;do ethtool eth${i} | egrep 'eth|Link';done
    

查看服务器性能

  1. 查看系统负载
    [root@hd101 /]# uptime
     10:11:35 up 51 days, 14:54, 10 users,  load average: 6.80, 6.50, 6.59
    
    说明 : 显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
  2. 显示内核环形缓冲区内容
    [root@hd101 /]# dmesg -T | tail
    [531 15:12:39 2022] device vethfa1c9b6 entered promiscuous mode
    [531 15:12:39 2022] IPv6: ADDRCONF(NETDEV_UP): vethfa1c9b6: link is not ready
    [531 15:12:39 2022] docker0: port 3(vethfa1c9b6) entered blocking state
    [531 15:12:39 2022] docker0: port 3(vethfa1c9b6) entered forwarding state
    [531 15:12:39 2022] docker0: port 3(vethfa1c9b6) entered disabled state
    [531 15:12:40 2022] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [531 15:12:40 2022] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    [531 15:12:40 2022] IPv6: ADDRCONF(NETDEV_CHANGE): vethfa1c9b6: link becomes ready
    [531 15:12:40 2022] docker0: port 3(vethfa1c9b6) entered blocking state
    [531 15:12:40 2022] docker0: port 3(vethfa1c9b6) entered forwarding state
    

查看系统资源占用

  1. 查看内存占用
    [root@hd101 /]# free
                  total        used        free      shared  buff/cache   available
    Mem:       32779888     3935664     7546548      200588    21297676    28240784
    Swap:       5242876           0     5242876
    
    说明 : free默认以kb为单位显示; 可以使用free -h可读显示
    Mem行 : total = used + free 其中buffers和cached虽然计算在used内, 但其实为可用内存。
    Swap:内存交换区的使用情况。
  2. 查看内存占用前五的进程
    [root@hd101 /]# ps auxw | head -1;ps auxw | sort -rn -k4 | head -5
    
    说明 : ps auxw 显示系统资源占用情况;
    head -1表示显示第一列,即标题列;
    sort -r 表示反向排序,-n表示按数字排序,-k4表示列的第4个字符。
  3. 查看CPU占用前三的进程
    [root@hd101 /]# ps auxw | head -1;ps auxw | sort -rn -k3 | head -3
    
  4. 查看系统整体的负载
    [root@hd101 /]# top
    
    在这里插入图片描述
    说明 : 进入top后按h打开帮助页; top -d 2 每隔2秒刷新显示; top -p 12345 -p 6789 每隔5秒显示pid是12345和pid是6789的进程资源情况。
    第一行 : 系统时间 + 系统运行时间 + 几个用户 + 1/5/15分钟系统平均负载
    第二行 : 进程总数(total) + 正在运行进程数(running) + 睡眠进程数(sleeping) + 停止的进程数(stopped)+ 僵尸进程数(zombie)
    第三行 : 用户空间CPU占比(us) + 内核空间CPU占比(sy)+ CPU空置率(id)
    PID : 进程ID; USER : 用户名; PR : 优先级; NI : 负值表示高优先级, 正值表示低优先级; VIRT :虚拟内存; RES : 真实内训; SHR :共享内存; S : 进程状态, D 不可中断的睡眠状态, R 运行, S 睡眠, T 跟踪/停止, Z 僵尸进程
  5. 查看进程实时的网络连接速度
    [root@hd101 /]# nethogs
    
    说明 : 需要手动安装。
    CentOS系统安装nethogs:yum tall nethogs -y
    Ubuntu系统安装nethogs:sudo apt install nethogs -y

Zookeeper

  1. 启动zookeeper
    [root@hd101 zookeeper]# bin/zkServer.sh start
    
  2. 查看状态
    [root@hd101 zookeeper]# bin/zkServer.sh status
    
  3. 启动客户端
    [root@hd101 zookeeper]# bin/zkCli.sh
    
  4. 显示所有操作命令
    [zk: localhost:2181(CONNECTED) 0] help
    
  5. 查看当前znode中所包含的内容
    [zk: localhost:2181(CONNECTED) 0] ls /
    
  6. 查看当前节点详细数据
    [zk: localhost:2181(CONNECTED) 0] ls2 /
    
  7. 创建节点
    [zk: localhost:2181(CONNECTED) 0] create /sanguo "zhugeliang"
    
  8. 获得节点的值
    [zk: localhost:2181(CONNECTED) 0] get /sanguo
    
  9. 创建短暂节点
    [zk: localhost:2181(CONNECTED) 0] create -e /sanguo/wuguo "zhouyu"
    
  10. 退出客户端
    [zk: localhost:2181(CONNECTED) 0] quit
    

Kafka

  1. 启动kafka
    [root@hd101 kafka]# bin/kafka-server-start.sh -daemon config/server.properties
    
  2. 关闭kafka
    [root@hd101 kafka]# bin/kafka-server-stop.sh stop
    
  3. 查看当前服务器中的所有topic
    [root@hd101 kafka]# bin/kafka-topics.sh --zookeeper [zkNode1:2181,zkNode2:2181] --list
    
  4. 创建topic
    [root@hd101 kafka]# bin/kafka-topics.sh --zookeeper [zkNode1:2181,zkNode2:2181] --create --replication-factor 3 --partitions 1 --topic [your_topic_name]
    
  5. 删除topic
    [root@hd101 kafka]# bin/kafka-topics.sh --zookeeper [zkNode1:2181,zkNode2:2181] --delete --topic [your_topic_name]
    
  6. 控制台生产消息
    [root@hd101 kafka]# bin/kafka-console-producer.sh --broker-list [kfkNode1:9092,kfkNode2:9092] --topic [your_topic_name]
    
  7. 控制台消费消息
    [root@hd101 kafka]# bin/kafka-console-consumer.sh --bootstrap-server [kfkNode1:9092,kfkNode2:9092] --topic [your_topic_name]
    [root@hd101 kafka]# bin/kafka-console-consumer.sh --bootstrap-server [kfkNode1:9092,kfkNode2:9092] --topic [your_topic_name] --from-beginning
    
  8. 查看topic详情
    [root@hd101 kafka]# bin/kafka-topics.sh --zookeeper [zkNode1:2181,zkNode2:2181] --describe --topic [your_topic_name]
    
  9. 修改topic分区数
    [root@hd101 kafka]# bin/kafka-topics.sh --zookeeper [zkNode1:2181,zkNode2:2181] --alter --topic [your_topic_name] --partitions 6
    
  10. 读取offset
    0.11.0.0之前版本:
    [root@hd101 kafka]# bin/kafka-console-consumer.sh --topic [your_topic_name] --bootstrap-server [kfkNode1:9092,kfkNode2:9092] --formatter "kafka.coordinator.GroupMetadataManager\$OffsetsMessageFormatter" --consumer.config config/consumer.properties --from-beginning
    0.11.0.0之后版本():
    [root@hd101 kafka]# bin/kafka-console-consumer.sh --topic [your_topic_name] --bootstrap-server [kfkNode1:9092,kfkNode2:9092] --formatter "kafka.coordinator.group.GroupMetadataManager\$OffsetsMessageFormatter" --consumer.config config/consumer.properties --from-beginning
    
  11. 重置消费者组 offset 到指定时间之前(需要先优雅的关闭消费者)
    [root@hd101 kafka]# bin/kafka-consumer-groups.sh --bootstrap-server [kfkNode1:9092,kfkNode2:9092] --group <消费者组> --reset-offsets --all-topics --execute --to-datetime 2022-01-12T00:30:00.000+08:00
    
  12. 查看消费者组信息
    [root@hd101 kafka]# bin/kafka-consumer-groups.sh --describe --bootstrap-server [kfkNode1:9092,kfkNode2:9092] --group [your_group_name]
    
  13. 重置消费者组, 重置之前需要优雅的关闭消费者
    [root@hd101 kafka]# bin/kafka-consumer-groups.sh --bootstrap-server [kfkNode1:9092,kfkNode2:9092] --group [your_group_name] --reset-offsets --all-topics --to-latest --execute
    
  14. 重置group offset到指定偏移量, 重置之前需要优雅的关闭消费者
    [root@hd101 kafka]# bin/kafka-consumer-groups.sh --bootstrap-server [kfkNode1:9092,kfkNode2:9092] --group [your_group_name] --reset-offsets --all-topics --execute --to-offset 10000000
    
  15. 删除消费者组
    [root@hd101 kafka]# bin/kafka-consumer-groups.sh --bootstrap-server [kfkNode1:9092,kfkNode2:9092] --group [your_group_name] --delete
    
  16. 查看topic某分区偏移量最大值
    每个分区
    [root@hd101 kafka]# bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list [kfkNode1:9092,kfkNode2:9092] --topic [your_topic_name] --time -1
    
    指定分区
    [root@hd101 kafka]# bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list [kfkNode1:9092,kfkNode2:9092] --topic [your_topic_name] --time -1 --partitions 0
    
    所有分区加总
    [root@hd101 kafka]# bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list [kfkNode1:9092,kfkNode2:9092] --topic [your_topic_name] --time -1 |  awk -F ":" '{sum1+=$NF} END {print sum1}'
    
  17. 服役新节点后, 进行负载均衡
    1. 生成负载均衡计划
      需要提前创建topics-to-move.json文件, 例如对first主题进行负载均衡
      [root@hd101 kafka]# vim topics-to-move.json
      
      {
          "topics": [
              {"topic": "first"}
          ],
          "version": 1
      }
      
      [root@hd101 kafka]# bin/kafka-reassign-partitions.sh --bootstrap-server hd101:9092,hd102:9092 --topics-to-move-json-file topics-to-move.json --broker-list "0,1,2,3" --generate
      
    2. 创建副本存储计划
      需要提前创建increase-replication-factor.json文件, 将计划输入并保存
      [root@hd101 kafka]# vim increase-replication-factor.json
      
      {"version":1,"partitions":[{"topic":"first","partition":0,"replicas":[0,1,2],"log_dirs":["any","any","any"]},{"topic":"first","partition":1,"replicas":[1,2,3],"log_dirs":["any","any","any"]},{"topic":"first","
      partition":2,"replicas":[2,3,0],"log_dirs":["any","any","any"]},{"topic":"first","partition":3,"replicas":[3,0,1],"log_dirs":["any","any","any"]},{"topic":"first","partition":4,"replicas":[0,2,3],"log_dirs":["
      any","any","any"]},{"topic":"first","partition":5,"replicas":[1,3,0],"log_dirs":["any","any","any"]}]}
      
      [root@hd101 kafka]# bin/kafka-reassign-partitions.sh --bootstrap-server hd101:9092,hd102:9092 --reassignment-json-file increase-replication-factor.json --execute
      
      在这里插入图片描述
    3. 验证副本存储计划
      [root@hd101 kafka]# bin/kafka-reassign-partitions.sh --bootstrap-server hd101:9092,hd102:9092 --reassignment-json-file increase-replication-factor.json --verify
      
      正在处理

Greenplum

  1. gp备份
    [root@hd101 greenplum]# gpbackup --dbname pasobi --backup-dir /exts/gpbackups/pasobi --compression-type zstd --compression-level 9 --jobs 2
    
  2. 刷新pgrest缓存
    [root@hd101 greenplum]# killall -SIGUSR1 postgrest
    

Java

  1. 执行jar包
    [root@hd101 /]# /data/soft/jdk1.8/bin/java -cp template.jar com.hd.service.UpgradeMain
    

Airflow

  1. 如果是docker, 需要先进入docker, 并切换airflow用户
    [root@hd101 /]# docker exec -it airflow2 bash
    [root@hd101 /]# su - airflow
    
  2. 列出所有dag
    [root@hd101 /]# airflow dags list
    
  3. 启动dagid=template的dag
    [root@hd101 /]# airflow dags trigger template
    
  4. 查看单个任务的依赖关系
    [root@hd101 /]# airflow tasks list template --tree
    

Nginx

Linux环境安装Nginx

  1. 安装所需环境
    [root@hd101 /]# yum -y install openssl openssl-devel pcre pcre-devel zlib zlib-devel gcc gcc-c++
    
  2. 准备安装包
    [root@hd101 /]# cd /opt/software
    [root@hd101 software]# wget http://nginx.org/download/nginx-1.13.7.tar.gz
    [root@hd101 software]# tar -zxvf nginx-1.13.7.tar.gz
    
  3. 安装nginx
    [root@hd101 /]# cd /opt/software/nginx-1.13.7
    [root@hd101 nginx-1.13.7]# ./configure --prefix=/opt/module/nginx
    [root@hd101 nginx-1.13.7]# make && make install
    

常用命令

  1. 启动
    [root@hd101 /]# cd /opt/module/nginx
    [root@hd101 nginx]# sbin/nginx
    
    说明 : 如果使用非root用户启动时需要执行端口使用赋权。含义: 让当前用户的某个应用也可以使用1024以下的端口
    [root@hd101 /]# sudo setcap cap_net_bind_service=+eip /opt/module/nginx/sbin/nginx
    
  2. 查看Nginx进程
    [root@hd101 /]# ps -ef | grep nginx
    
  3. 停止
    [root@hd101 /]# cd /opt/module/nginx
    [root@hd101 nginx]# sbin/nginx -s quit
    或者
    [root@hd101 nginx]# sbin/nginx -s stop
    
  4. 重启
    [root@hd101 /]# cd /opt/module/nginx
    [root@hd101 nginx]# sbin/nginx -s reload
    
  5. 设置开启自启动
    [root@hd101 /]# vim /etc/rc.local
    底部添加一行
    /opt/module/nginx/sbin/nginx
    
  6. 配置检查
    [root@hd101 /]# /opt/module/nginx/sbin/nginx -c /opt/module/nginx/conf/nginx.conf -t
    
  7. web端
    http://hd101:80/

HDFS

  1. 查看帮助
    [root@hd101 /]# hdfs dfs -help 
    
  2. 查看当前目录信息
    [root@hd101 /]# hdfs dfs -ls /
    
  3. 上传文件
    [root@hd101 /]# hdfs dfs -put /本地路径 /hdfs路径
    
  4. 剪切文件
    [root@hd101 /]# hdfs dfs -moveFromLocal a.txt /aa.txt
    
  5. 下载文件到本地
    [root@hd101 /]# hdfs dfs -get /hdfs路径 /本地路径
    
  6. 合并下载
    [root@hd101 /]# hdfs dfs -getmerge /hdfs路径文件夹 /合并后的文件
    
  7. 创建文件夹
    [root@hd101 /]# hdfs dfs -mkdir /hello
    
  8. 创建多级文件夹
    [root@hd101 /]# hdfs dfs -mkdir -p /hello/world
    
  9. 移动hdfs文件
    [root@hd101 /]# hdfs dfs -mv /hdfs路径 /hdfs路径
    
  10. 复制hdfs文件
    [root@hd101 /]# hdfs dfs -cp /hdfs路径 /hdfs路径
    
  11. 删除hdfs文件
    [root@hd101 /]# hdfs dfs -rm /aa.txt
    
  12. 删除hdfs文件夹
    [root@hd101 /]# hdfs dfs -rm -r /hello
    
  13. 查看hdfs中的文件
    [root@hd101 /]# hdfs dfs -cat /文件
    [root@hd101 /]# hdfs dfs -tail -f /文件
    
  14. 查看文件夹中有多少个文件
    [root@hd101 /]# hdfs dfs -count /文件夹
    
  15. 查看hdfs的总空间
    [root@hd101 /]# hdfs dfs -df /
    [root@hd101 /]# hdfs dfs -df -h /
    
  16. 修改副本数
    [root@hd101 /]# hdfs dfs -setrep 1 /a.txt
    

Elasticsearch

  1. 查看集群信息
    [root@hd101 /]# curl http://hd103:9200/
    
  2. 查看节点信息
    [root@hd101 /]# curl http://hd103:9200/_cat/nodes?v
    
  3. 查看集群健康状态
    [root@hd101 /]# curl -XGET 'http://hd103:9200/_cluster/health?pretty=true'
    
  4. 查看索引状态
    [root@hd101 /]# curl -XGET 'http://hd103:9200/_cat/indices?v&pretty'
    
    health status index     uuid                   pri rep docs.count docs.deleted store.size pri.store.size
    red    open   .kibana_1 eZ7hC4Z_SGSD-gpSfqI-Vg   1   0
    
  5. 删除异常索引
    [root@hd101 /]# curl -XDELETE http://hd103:9200/.kibana_1
    

Redis

docker化安装

  1. 拉取镜像
    [root@hd101 /]# docker pull redis
    
  2. 启动容器
    [root@hd101 /]# docker run -p 16379:6379 --name redis_etl  -d redis redis-server --requirepass hbaCYQhCH7ABQX
    
  3. 进入容器
    [root@hd101 /]# docker exec -it redis_etl bash
    
  4. 进入redis客户端
    root@853cd82306e2:/data# redis-cli
    
  5. 查看现有密码
    127.0.0.1:6379> config get requirepass
    
  6. 认证密码
    127.0.0.1:6379> auth hbaCYQhCH7ABQX
    
  7. 设置密码
    127.0.0.1:6379> config set requirepass hbaCYQhCH7ABQX
    
  8. 退出redis客户端
    127.0.0.1:6379> exit
    

Oralce

sql命令

  1. 查看正在执行的语句查询 & 拼接杀进程语句
    select  'alter system kill session '''||b.sid||','||b.serial#||''';' killer,
        b.sid oracleid,
        b.username oracle用户,
        b.serial#,
        spid 操作系统id,
        paddr,
        sql_text 正在执行的sql,
        b.machine 计算机名
    from v$process a, v$session b, v$sqlarea c
    where a.addr = b.paddr
    and b.sql_hash_value = c.hash_value;
    
  2. 查看锁表语句 & 拼接杀进程语句
    select 'alter system kill session '''||s.sid||','||s.serial#||''';' killer,
    	l.session_id sid, 
        s.serial#, 
        l.locked_mode, 
        l.oracle_username, 
        s.user#, 
        l.os_user_name, 
        s.machine, 
        s.terminal, 
        a.sql_text, 
        a.action 
    from v$sqlarea a, v$session s, v$locked_object l 
    where l.session_id = s.sid 
    and s.prev_sql_addr = a.address 
    order by sid, s.serial#;
    
  3. 最耗费CPU
    select *
      from (select sql_text,
                   buffer_gets,
                   disk_reads,
                   sorts,
                   cpu_time / 1000000 cpu_sec,
                   executions,
                   rows_processed
              from v$sqlstats
             order by cpu_time DESC)
     where rownum < 11;
    
    select *
      from (select a.sid session_id,
                   a.sql_id,
                   a.status,
                   a.cpu_time / 1000000 cpu_sec,
                   a.buffer_gets,
                   a.disk_reads,
                   b.sql_text sql_text
              from v$sql_monitor a, v$sql b
             where a.sql_id = b.sql_id
             order by a.cpu_time desc)
     where rownum <= 20;
    
  4. 查询SQL执行情况
    select t.inst_id,t.sql_id,t.last_active_time,t.sql_profile, --如果该字段有值,就是按固化走执行计划
        t.plan_hash_value,t.sql_fulltext,t.child_number 执行计划版本号,
        trunc((t.cpu_time/t.executions/1000000),4) 每次cpu时间,trunc((t.elapsed_time-t.cpu_time)/t.executions/1000000,4)"每次等待时间",t.executions 总执行次数,
        --trunc(t.executions/((t.last_active_time-to_date(t.last_load_time,'yyyy/mm/dd hh24:mi:ss'))*86400)) 平均每秒执行次数,
        round(t.rows_processed/t.executions,2) 平均返回行数,trunc(t.elapsed_time / t.executions / 1000000,4) "每次执行(秒)",
        trunc((t.buffer_gets / t.executions/1000000),4) 每次逻辑读,trunc((t.disk_reads / t.executions/1000000),4) 每次物理读,
        trunc((t.cluster_wait_time/t.executions/1000000),4) 每次集群等待,trunc((t.user_io_wait_time/t.executions/1000000),4) 每次io等待,
        trunc((t.application_wait_time/t.executions/1000000),4) 每次应用等待,trunc((t.concurrency_wait_time/t.executions/1000000),4) 每次并发等待,
        t.first_load_time 首次硬解析时间,t.last_load_time 上次硬解析时间,
        t.module,t.action,t.parsing_schema_name,trunc(t.elapsed_time/1000000,4) "执行时间(秒)",
        trunc(t.cpu_time/1000000,4) cpu时间,t.parse_calls 总解析次数, t.loads 硬解析次数, t.buffer_gets,t.cluster_wait_time,
        t.user_io_wait_time,t.application_wait_time,t.concurrency_wait_time,t.plan_hash_value
    from gv$sql t
    where t.executions >0
    --and t.sql_id='cjrpgh8gqybs0'
    order by t.cpu_time desc
    
  5. 最耗缓存
    select * from (
        select sql_fulltext sql,
            buffer_gets, executions, buffer_gets/executions "gets/exec",
            hash_value,address,last_active_time
        from v$sqlarea
        where buffer_gets > 10000
        order by buffer_gets desc)
    where rownum <= 10 ;
    
  6. 最多物理读取
    select * from (
        select sql_fulltext sql,
            disk_reads, executions, disk_reads/executions "reads/exec",
            hash_value,address,last_active_time
        from v$sqlarea
        where disk_reads > 1000
        order by disk_reads desc)
    where rownum <= 10 ;
    
  7. 最多执行
    select * from (
        select substr(sql_text,1,40) sql,sql_fulltext,
            executions, rows_processed, rows_processed/executions "rows/exec",
            hash_value,address,last_active_time
        from v$sqlarea
        where executions > 100
        order by executions desc)
    where rownum <= 10 ;
    
  8. 最耗内存
    select * from (
        select substr(sql_text,1,40) sql,
            sharable_mem, executions, hash_value,address,last_active_time
        from v$sqlarea
        where sharable_mem > 1048576
        order by sharable_mem desc)
    where rownum <= 10 ;
    
  9. 失效的索引重建
    select 'alter index '||index_name||' rebuild online;'
    from user_indexes
    where status <> 'valid'
    	and index_name not like'%$$';
    
  10. 查看当前用户的表空间
    select * from user_tablespaces;
    
  11. 查看表空间使用情况
    select
    	a.tablespace_name,
    	round(a.bytes*1.0/(1024*1024*1024),4) "total(gb)",
    	round(b.bytes*1.0/(1024*1024*1024),4) "used(gb)",
    	round(c.bytes*1.0/(1024*1024*1024),4) "free(gb)",
    	round((b.bytes * 100) / a.bytes,4) "used(%)",
    	round((c.bytes * 100) / a.bytes,4) "free(%)"
    from sys.sm$ts_avail a,sys.sm$ts_used b,sys.sm$ts_free c
    where a.tablespace_name = b.tablespace_name
    	and a.tablespace_name = c.tablespace_name;
    
  12. 查看每张表的表空间占用
    select segment_type,tablespace_name,segment_name,
    	round(bytes*1.0/(1024*1024*1024),4) "gb"
    from user_segments
    where segment_type = 'TABLE'
    order by bytes desc;
    

Python

Linux 中安装/卸载 Miniconda

  1. 下载最新版 miniconda
    [root@hd101 /]# wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
    
  2. 在bash中安装
    [root@hd101 /]# sh Miniconda3-latest-Linux-x86_64.sh
    
  3. 安装完成后, 关闭terminal后, 重新打开, 输入以下命令以验证是否安装成功
    [root@hd101 /]# conda -V
    
  4. 卸载 miniconda
    删除已安装的文件夹
    [root@hd101 /]# rm -rf /opt/module/miniconda/
    [root@hd101 /]# rm -rf /opt/module/anaconda/
    
    打开 ~/.bashrc 文件, 删除miniconda的环境变量
    export PATH=" /opt/module/anaconda/bin:$PATH" 
    export PATH=" /opt/module/miniconda3/bin:$PATH" 
    

Miniconda命令

  1. 查看版本
    [root@hd101 /]# conda -V
    
  2. 检查更新当前conda
    [root@hd101 /]# conda update conda
    
  3. 查看安装了哪些包
    [root@hd101 /]# conda list
    
  4. 查看当前存在哪些虚拟环境
    [root@hd101 /]# conda env list
    [root@hd101 /]# conda info -e
    [root@hd101 /]# conda info --envs
    
  5. 创建Python环境
    [root@hd101 /]# conda create -n NewEnvName python=3.8
    
  6. 激活Python环境
    [root@hd101 /]# conda activate NewEnvName
    
  7. 退出虚拟环境
    [root@hd101 /]# conda deactivate
    
  8. 删除Python环境
    [root@hd101 /]# conda remove -n NewEnvName --all
    
  9. Python环境中安装py包
    [root@hd101 /]# conda install -n NewEnvName [package]
    
  10. Python环境中卸载py包
    [root@hd101 /]# conda remove --n NewEnvName [package]
    

Python项目部署

python项目开发完后,需要部署到生产或其他环境下,为了快速安装当前项目所需要的依赖包,常规的做法:

[root@hd101 /]# pip freeze > requirements.txt

此方法是导出pip安装的所有依赖包,而不仅仅是当前项目,这么做显然没有必要。
python 提供了pipreqs包解决这个问题。

  1. 安装pipreqs
    [root@hd101 /]# pip install pipreqs
    
  2. 进入当前项目根目录下执行
    [root@hd101 /]# cd project_name
    [root@hd101 /]# pipreqs . --encoding=utf8 --force
    
    • “.” 指的是将导出依赖包的文件放在当前目录下

    • “–encoding=utf8” 指的是存放文件的编码为utf-8, 否则会报错

    • “–force” 强制执行,当生成目录下的requirements.txt存在时强制覆盖

  3. 在新的环境下,进入项目根目录执行以下脚本完成所有依赖包的安装
    [root@hd101 /]# pip install -r requirements.txt
    

pip镜像源

常用国内源
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
阿里云 http://mirrors.aliyun.com/pypi/simple/
豆瓣 http://pypi.douban.com/simple/

  1. 临时使用
    [root@hd101 /]# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyzipper
    
  2. 手动更换镜像源
    全局设置镜像源地址
    [root@hd101 /]# pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    

RFC 2822、datetime 转换

import pytz
from email.utils import parsedate_to_datetime, format_datetime

shanghai = pytz.timezone('Asia/Shanghai')

# RFC 2822 -> datetime
datetime = parsedate_to_datetime('Mon, 14 Nov 2022 11:25:38 +0800').astimezone(shanghai)
print('datetime:', type(datetime), '\t', datetime)
# datetime -> RFC 2822
rfc_date_str = format_datetime(datetime)
print('rfc_date_str :', type(rfc_date_str), '\t', rfc_date_str)

StreamSets

部署安装

StreamSets官网
StreamSets 3.14.0 安装包 提取码:yyds

  1. 上传安装包并解压

    [root@hd101 /]# unzip streamsets-datacollector-3.14.0.zip -d /opt/module/streamsets
    
  2. 修改配置 sdc-env.sh

    [root@hd101 /]# vim /opt/module/streamsets/libexec/sdc-env.sh
    

    在这里插入图片描述

  3. 修改配置 sdc.properties

    [root@hd101 /]# vim /opt/module/streamsets/etc/sdc.properties
    

    在这里插入图片描述

  4. 启动

    [root@hd101 /]# nohup /opt/module/streamsets/bin/streamsets dc &
    

    默认登录账号 admin/admin

  5. 停止

    [root@hd101 /]# ps -ef | grep streamsets | grep -v grep | grep -v /bin/bash | awk '{print$2}' | xargs --no-run-if-empty kill
    
  6. 启停脚本 (需要配置环境变量STREAMSETS_HOME)

    #!/bin/sh
    if [ $# = 1 ]
    then
        if [ $1 = "help" ]
        then
            echo "control the streamsets process, eg:sh streamsets.sh start|stop|restart|status"
        elif [ $1 = "start" ]
        then
            pid=`ps -ef | grep streamsets | grep -v grep | grep -v /bin/bash | grep -v streamsets.sh | awk '{print$2}'`
            if [ "$pid" != "" ]
            then
                echo "streamsets has already running pid is "$pid
            else
                nohup $STREAMSETS_HOME/bin/streamsets dc > $STREAMSETS_HOME/nohup.out 2>&1 &
                echo "streamsets has been start"
            fi
        elif [ $1 = "stop" ]
        then
            pid=`ps -ef | grep streamsets | grep -v grep | grep -v /bin/bash | grep -v streamsets.sh | awk '{print$2}'`
            if [ "$pid" != "" ]
            then
                        kill -9 $pid
                echo "streamsets has been stop"
                    else
                            echo "streamsets has not running"
                    fi
        elif [ $1 = "restart" ]
        then
            pid=`ps -ef | grep streamsets | grep -v grep | grep -v /bin/bash | grep -v streamsets.sh | awk '{print$2}'`
            if [ "$pid" != "" ]
            then
                kill -9 $pid
                echo "streamsets has been stop"
                nohup $STREAMSETS_HOME/bin/streamsets dc > $STREAMSETS_HOME/nohup.out 2>&1 &
                echo "streamsets has been start"
            else
                nohup $STREAMSETS_HOME/bin/streamsets dc > $STREAMSETS_HOME/nohup.out 2>&1 &
                            echo "streamsets has been start"
            fi
        elif [ $1 = "status" ]
        then
            pid=`ps -ef | grep streamsets | grep -v grep | grep -v /bin/bash | grep -v streamsets.sh | awk '{print$2}'`
            if [ "$pid" != "" ]
            then
                echo "streamsets is running pid is "$pid
            else
                echo "streamsets is not running"
            fi
        else
            echo "WRONG ARGS,USAGE:"
                echo "  eg: sh streamsets.sh help"
        fi
    
    else
        echo "WRONG ARGS,USAGE:"
        echo "    eg: sh streamsets.sh help"
    fi
    

Git

常用命令

在这里插入图片描述

  1. yum安装
    [root@hd101 /]# yum install -y git
    
  2. 稀疏检出
    [root@hd101 /]# cd /path/to/my/workspace
    [root@hd101 /]# git init
    [root@hd101 /]# git config core.sparsecheckout true
    [root@hd101 /]# git config --global credential.helper store
    [root@hd101 /]# git remote add -f origin https://gitlab.hd123.com/datacenter/remoteRep.git
    [root@hd101 /]# echo "fileX" >> .git/info/sparse-checkout
    [root@hd101 /]# git pull origin master
    
    1. 进到工作空间目录
    2. 创建一个空的repository
    3. 在 config 中设置允许使用 sparse checkout(稀疏检出) 模式
    4. 在 config 中设置免密
    5. 获取远程仓库中的所有对象, 但不检出, 同时将远程的 git server url 添加到 .git/config 文件中
    6. 定义要实现稀疏检出的文件/文件夹, 如 fileX
    7. 检出 master 分支, 此时仅会检出定义好的 fileX 文件夹
    
  3. 舍弃本地修改, 并检出
    [root@hd101 /]# git fetch --all
    [root@hd101 /]# git reset --hard origin/master
    [root@hd101 /]# git pull origin master
    
    1. 从另外一个版本库下载对象和引用
    2. 重置当前HEAD到指定状态 (master分支)
    3. 检出master分支
    
Logo

更多推荐