111

系统相关的限制参数
cat /proc/sys/fs/file-max -> 1606896  系统的总句柄数
    Linux系统在启动时根据系统硬件资源状况计算出来的最佳的最大同时打开文件数限制,如果没有特殊需要,不用修改,除非打开的文件句柄数超过此值。
    一定要大于等于/etc/security/limits.conf所设置的soft nofile和soft nofile值
    * soft nofile 32768
    * hard nofile 65536
    修改方式: 1. echo 1048576 > /proc/sys/fs/file-max 系统重启后消失
              2. 修改/etc/sysctl.conf  fs.file-max = 1048576  执行sysctl -p ,重启不会消失
    超过该阈值的时候 通过dmesg 显示[warn] socket: Too many open files in system
              

最简单的samba配置:
    启动和停止samba服务 systemctl start/stop/restart/status/enable smb
    无密码访问  map to guest = Bad User
    默认格式 
    [shiyuefeng]
    comment = shiyeufeng
    path = /home/shiyuefeng
    public = yes
    writeable = yes
    create mode = 0644
    force create mode = 0644
    directory mode = 0755
    force directory mode = 0755

tcp的连接数的问题
    tcp_mem(3个INTEGER变量):low, pressure, high
    low:      当TCP使用了低于该值的内存页面数时,TCP不会考虑释放内存。
    pressure:当TCP使用了超过该值的内存页面数量时,TCP试图稳定其内存使用,进入pressure模式,当内存消耗低于low值时则退出pressure状态。
    high:    允许所有tcp sockets用于排队缓冲数据报的页面量,当内存占用超过此值,系统拒绝分配socket,后台日志输出“TCP: too many of orphaned sockets”。
    
    cat /proc/sys/net/ipv4/tcp_rmem
    4096 87380 4161536
    默认值为87380 bit ≈ 86K,最小为4096bit=4K,最大值为4064K。
    
    一般情况下这些值是在系统启动时根据系统内存数量计算得到的。 
    cat /proc/sys/net/ipv4/tcp_mem
    932448 1243264 1864896
    net.ipv4.tcp_mem 则是配置tcp的内存大小,其单位是页,而不是字节 ,1页等于4096字节!
    根据当前tcp_mem最大内存页面数是1864896,当内存为(1864896*4)/1024K = 7284.75M时,系统将无法为新的socket连接分配内存,即TCP连接将被拒绝。
    
    为了节省内存,设置tcp读、写缓冲区都为4K大小,tcp_mem三个值分别为3G 8G 16G,tcp_rmem和tcp_wmem最大值也是16G。
    echo "net.ipv4.tcp_mem  = 786432 2097152 3145728" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_rmem = 4096   4096    16777216">> /etc/sysctl.conf
    echo "net.ipv4.tcp_wmem = 4096   4096    16777216">> /etc/sysctl.conf
    
    cat /proc/sys/net/ipv4/ip_local_port_range 端口限制
    echo "net.ipv4.ip_local_port_range = 1024 65535" >> /etc/sysctl.conf
    
    cat /proc/net/sockstat 查看当前的socket 连接数状态
    cat /proc/net/sockstat
        sockets: used 390         已使用的所有协议套接字总量
        TCP: inuse 9 orphan 0 tw 19 alloc 13 mem 3 
        UDP: inuse 4 mem 1
        UDPLITE: inuse 0
        RAW: inuse 0
        FRAG: inuse 0 memory 0

        TCP: inuse:    正在使用(正在侦听)的TCP套接字数量
        TCP: orphan:    无主(不属于任何进程)的TCP连接数(无用、待销毁的TCP socket数)
        TCP: tw:        等待关闭的TCP连接数。其值等于netstat –ant | grep TIME_WAIT | wc –l
        TCP:alloc:    已分配(已建立、已申请到sk_buff)的TCP套接字数量。其值等于netstat –ant | grep ^tcp | wc –l
        TCP:mem:        代表消耗的内存,单位是PAGE SIZE,一般为4KB ,内核处缓存用户没有及时收取到用户空间的tcp数据所消耗的内存大小。
        UDP:inuse:    正在使用的UDP套接字数量
        RAW:
        FRAG:使用的IP段数量


    
sysctl -a 显示在/proc/sys目录中的内核参数
sysctl -p 从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载
    

??? 哪个才是当前系统的打开文件数量
[root@HikvisionOS ~]# lsof |wc -l
4219
[root@HikvisionOS ~]# sysctl -a | grep file
fs.file-max = 1606896
fs.file-nr = 1504    0    1606896
fs.xfs.filestream_centisecs = 3000

scp -r  ../TVMS/ root@10.33.43.107:/home/shiyuefeng  Linux 服务器之间拷贝文件 -r 表示的是拷贝目录
      
          
ulimit -n,仅仅设置当前shell以及由它启动的进程的资源限制

ps -eo pid,lstart,etime | grep 18672 查看某个进程运行了多久

top 相关命令:
    c 查看全路径 
    C cpu排序 
    M 内存排序
    1 显示多少CPU

查看内存相关状态
    vmstat -w 5 每个五秒查询一次
    
查看磁盘io相关状态
    iostat -x 2 3 每隔2秒查询一次 查询三次    
    %util: 在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度 
            一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。      
    await: 每一个IO请求的处理的平均时间(单位是微秒毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。
    rKB/s:每秒向设备发出的读取请求的数量
    wKB/s:每秒向设备发出的写入请求的数目      
    
    iostat -d - 1 10 #查看TPS和吞吐量信息
    tps:该设备每秒的传输次数。“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”。“一次传输”请求的大小是未知的。
    kB_read/s:每秒从设备读取的数据量;
    kB_wrtn/s:每秒向设备写入的数据量;
    kB_read:读取的总数据量;
    kB_wrtn:写入的总数量数据量;。
    
Vim的相关操作
    /dag 可以高亮显示dag字段
    * 跳转到光标所在字符的下一个匹配处
    # 跳转到光标所在字符的上一个匹配处
    u 撤销操作
    vi -b 11.cpp 二进制打开文件(主要存在些乱码换行符的情况,linux 默认unicode) 
        :%s/^M//g 当出现换行符错误的时候进行该操作(原理就是替换操作), ^M = ctrl + v + ctrl + m
    gg -> 文件头  G -> 文件尾
    
    ctags -R * 设置ctags的索引
    vi -t main 打开相应的函数 
    :ta main  可以转到相应的函数(跨文件) ctrl+t 可以返回
    在相应的函数上面 :ctrl+] 可以进行函数跳转 ctrl+o 返回原来的地方
    gd 转到当前光标所指的局部变量的定义
    * 转到当前光标所指的单词一次出现的地方
    # 转到当前光标所指的单词上一次出现的地方
    

    
脚本执行报错不显示
    rm /etc/init.d/dag > /dev/null 2>&1显示错误的话 不显示

查看系统的最大线程限制
    cat /proc/sys/kernel/threads-max 
    
查看当前系统下的线程总数
    pstree -p | wc -l
    
查看进程下的所有线程数量
    ps -eLf|grep pid|wc -l 
    
查看动态库的依赖库文件
    nm –D libtest.so [直接显示相关的库]
    ldd -r libtest.so [检查相关的符号是否存在]
    
在linux下挂在windows下的更新目录
    yum install cifs* -y
    mount.cifs //10.20.139.86/Dcdag3.0  /home/shiyuefeng -o user=shiyuefeng,password=******
    umount /mnt/APP    
    
检查文件系统磁盘占用情况
    df -h     
    
检查磁盘空间占用情况:
     du -h  --max-depth=1     只显示一级目录 
     du -h * --max-depth=1  显示所有的目录大小

增加文件的权限
    chmod -R  777 *
    
查看linux的core文件的生成路径
    cat /proc/sys/kernel/core_pattern
    测试利用kill -6 pid能够core文件。
    
gdb 相关操作
    选择动态库的路径信息:
        1.set solib-search-path /group/DcdagBuild/DC_DAG_SERVER_Linux_x64_20171129
        2.info sharedlibrary 
    显示所有的线程堆栈
        thread apply all bt
    调试到该函数体执行结束
        finish
    手动生成dmp
        gdb -p pid ;generate-core-file 也可以直接gcore pid -o dag.core
    指定运行到哪里暂停
        until main.cpp:1523
    查看进程的内存映射,可以查看加载的动态库
        info proc mapping
    条件断点
        b MutexTest.cpp:57 if tmp == 10
    查看对应的内存
        x /20x 0x7ffea6f48d68 (x是以16进制显示,也可以s,以字符串的形式显示)
        b表示单字节,h表示双字节,w表示四字 节,g表示八字节。
    查看对应的汇编代码
        x /10i thread
    设置断点
        b main.cpp:12 / b CTest:add
    调试dmp
        gdb -c dag.core /usr/local/DAG/dag
    单线程调试  
        set scheduler-locking= on
    宏调试
        编译选项g3 使用info macro DEBUG进行查看
    基本寄存器信息
        X86
        %esp:堆栈顶部
        %ebp:当前堆栈帧
        %eip:指令指针
        X64
        %rsp:堆栈顶部
        %rbp:当前堆栈帧
        %rip:指令指针
        
    查看函数指正对应的详细信息
        info symbol  0x00007f4eca9119ce
        
    查找相关的函数符号等    
         info functions SNMP
         
    打开数组显示,每个元素占一行
         set print array on
         show print array on
    设置数组的,如果你的数组太大了,那么就可以指定一个来指定数据显示的最大长度,当到达这个长度时,GDB就不再往下显示了。如果设置为0,则表示不限制
         set print elements 
         show print elements
         
    设置显示结构体时,是否显式其内的联合体数据     
         set print union 
         show print union 
         
    GDB显示结构体时会比较漂亮
        set print pretty on
        
    设置dmp的core    
        bit0: 私有匿名 
        bit1: 共享匿名 
        bit2: 有底层文件的私有映射 
        bit3: 有底层文件共享映射 
        bit4: ELF头 
        bit5: 私有大尺寸页 
        bit6: 共享大尺寸页
        cat /proc/505/coredump_filter    
        cat /proc/self/coredump_filter  这边就是默认的参数设置
        
    gdb执行shell
        shell 命令行:shell ls
    
    查看变量的类型
        whatis reqinfo
    
iptables 防火墙设置
    iptables -L -n    
    iptables -A INPUT -s 10.33.43.53 -p tcp  -j DROP
    iptables -A OUTPUT -d 10.33.43.53 -p tcp  -j DROP
    iptables -D OUTPUT -d 10.33.43.53 -p tcp -j DROP
    
    systemctl stop firewalld         #停止firewall
    systemctl disable firewalld     #禁止firewall开机启动
    systemctl status firewalld         #查看防火墙的状态
    
    firewall-cmd --list-all --zone=public         #查看防火墙规则
    firewall-cmd --permanent --zone=trusted --remove-source=10.20.139.19 |--add-port=80/tcp
    firewall-cmd --get-active-zones
    
    iptables -I INPUT -s 123.44.55.66 -j DROP

    
    yum list | grep iptables        #查看yum源是否有iptables的安装包
    
yum的镜像源设置 /etc/yum.repos.d/CentOS-Base.repo    

查看centos的各种版本
cat /proc/version
cat /etc/redhat-release

strace的使用
strace -f -t -o configure-strace.txt -e trace=all ./dag [-p 10245]

可以自动的尝试出密码
hydra -L user.txt -P passwd.txt  -t 16 -e ns 10.33.43.13 ssh
hydra -l administrator -P pass.txt 10.36.16.18 smb

查看静态库里面包含的信息
ar -t libevent.a

addr2line -e test1 400506

who-u 查看当前有多少登陆的用户
pkill -kill -t pts/0 剔出相应的用户


给定一个Linux下的so或可执行文件,怎样感知其中预设的rpath信息?
objdump -x binary-or-library | grep RPATH

nc用法
-l  使用监听模式
-p  通信端口
-k  重复接受某个端口上的连接 必须和-l一起使用
-u  使用UDP传输协议。
绑定5001的tcp服务器端口
nc -kl 5001
nc 10.20.139.19 60000

nethogs 可以查看网络带宽顺序

iotop -o -d 1 每隔1s刷新一次 -o代表只显示有io的进程
也可以iotop -p pid 查看某个进程的io

nmap -sP 10.14.84.117-125 ping扫描
nmap -P0 10.14.84.117-125 禁ping扫描 可以在目标主机禁ping的情况下使用
nmap默认使用tcp ack 和icmp对目标进行是否存活的响应,当防火墙存在的时候 可以使用tcp syn ping 扫描来进行判断
nmap -PS 10.14.84.117-125
nmap -PA 10.14.84.117-125  默认就是ack扫描 -PA 和-PS 可以同时使用 ,既发送syn也发送ack
-oN tt.txt 指定输出文件
指定扫描端口 nmap -p 2-200 10.33.43.84
检测操作系统 nmap -0 10.33.13.12


valgrind --tool=memcheck   --track-fds=yes --leak-check=full --error-limit=no  --track-origins=yes   --log-file = a.log ./a.out
--vgdb=yes 当出现错误,valgrind会自动启动调试器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值