IT博客汇
首页
精华
技术
设计
资讯
扯淡
权利声明
登录
注册
shell应用(6): TCP内核调优与内存转储设置
春秋十二月
发表于
2014-03-24 10:44:00
love
0
为了方便更改系统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换行。
春秋十二月
2014-03-24 18:44
发表评论