Shell应用(6): TCP内核调优与转储设置

Shell应用(6): TCP内核调优与转储设置
   为了方便更改系统tcp内核的一些参数,编写ktcpopt脚本如下
1 #! /bin/bash 
2 # ktcpopt 
3
4 sed -i '/net.ipv4.tcp_syncookies\|net.ipv4.tcp_tw_reuse\|net.ipv4.tcp_tw_recycle\|net.ipv4.tcp_fin_timeout\|net.ipv4.tcp_max_syn_backlog\|net.ipv4.tcp_max_tw_buckets\|net.ipv4.ip_local_port_range/d' /etc/sysctl.conf
5
6 sed -i '$a\ net.ipv4.tcp_syncookies=1 \n net.ipv4.tcp_tw_reuse=1 \n net.ipv4.tcp_tw_recycle=1 \n net.ipv4.tcp_fin_timeout=30 \n net.ipv4.tcp_max_syn_backlog=8192 \n net.ipv4.tcp_max_tw_buckets=5000 \n net.ipv4.ip_local_port_range=10000 65000 ' /etc/sysctl.conf

  为了方便配置程序的崩溃调试,编写coredump脚本如下
1 #! /bin/bash
2 # coredump
3
4 sed -i '/ulimit -c unlimited\|export core_path=\/tmp\/corefiles\|mkdir -p $core_path\|echo "0" > \/proc\/sys\/kernel\/core_uses_pid\|echo "$core_path\/%e" > \/proc\/sys\/kernel\/core_pattern/d' ~/.bashrc
5
6 sed -i '$a\ ulimit -c unlimited \n export core_path=/tmp/corefiles \n mkdir -p $core_path \n echo "0" > /proc/sys/kernel/core_uses_pid \n echo "$core_path/%e" > /proc/sys/kernel/core_pattern ' ~/.bashrc

   从以上2个脚本可以看出,为避免每次调用脚本时增加重复行以致配置文件逐渐变大,先删除已经存在的相关配置,再在末尾增加。这里使用了sed来实现直接在文件中删除和增加,其中由于删除操作的匹配模式有多个,因此使用了|符号并用\转义,并且第2个脚本模式文本中含有/符号,这与sed本身的模式限定符/存在歧义,因此也用了\转义;增加使用$a\命令来实现在文件末尾增加配置,并用\n换行。

你可能感兴趣的:(Shell应用(6): TCP内核调优与转储设置)