`
arksea
  • 浏览: 63760 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

常用脚本:在应用安装时自动修改文件句柄数

阅读更多

    当系统部署时常常需要修改目标系统的文件句柄数,如果安装的机器比较多容易忘记,这时候在应用的安装脚本中自动修改是个更好的选择,这里写了个脚本备用免得以后再去想正则表达式。在CentOS5.4下测试通过。

 

#cat install.sh

 

#/bin/bash
if [ `whoami` = root ]
then
  echo "install..."
  echo "set limit nofile..."
  LIMIT_FILE=/etc/security/limits.conf
  if grep "^\* *soft *nofile *[0-9]*" $LIMIT_FILE > /dev/null
  then
    sed 's/^\* *soft *nofile *[0-9]*/\*       soft    nofile   10240/' $LIMIT_FILE > limits.conf.temp
    mv limits.conf.temp $LIMIT_FILE
  else
    echo '*       soft    nofile   10240' >> $LIMIT_FILE
  fi

  if grep "^\* *hard *nofile *[0-9]*" $LIMIT_FILE > /dev/null
  then
    sed 's/^\* *hard *nofile *[0-9]*/\*       hard    nofile   32768/' $LIMIT_FILE > limits.conf.temp
    mv limits.conf.temp $LIMIT_FILE
  else
    echo '*       hard    nofile   32768' >> $LIMIT_FILE
  fi
  echo "chown run dir..."
  chown crust.crust /home/crust/run
  chmod a+x start stop showapps
  cp autostart.in /etc/rc.d/init.d/crust
  chmod a+x /etc/rc.d/init.d/crust
  echo "add crust autostart script"
  /sbin/chkconfig --add crust
  echo "add crust as system service"
  chmod u+x ./so/config_so_ld.sh
  ./so/config_so_ld.sh
else
  echo "ERROR: please use root user run the script !!!!!!!"
fi

 

脚本中首先搜索 /etc/security/limits.conf 中是否包含句柄数配置,没有的话直接在后面添加,已有配置则用sed进行替换。脚本后面还干了两件事顺带提一下:将应用配置成服务、注册动态库。

 

#cat autostart.in

#!/bin/bash
# Init file for crust daemon
# chkconfig: 35 99 01 
# description: crust 
# processname: erl
#

export HOME=/home/crust/run

start()
{
  cd $HOME
  echo "[START] "  `date` >> start.log
  touch /var/lock/subsys/crust  >/dev/null 2>&1
  su curst -c ./start >/dev/null 2>&1
}

stop()
{
  cd $HOME
  echo "[STOP]  "  `date` >> start.log
  rm -f /var/lock/subsys/crust  >/dev/null 2>&1
  su crust -c ./stop >/dev/null 2>&1
}

case "$1" in
start)  start;;
stop)   stop;;
esac

 

 

 

#cat config_so_ld.sh

 

#!/bin/bash
if [ `whoami` = root ]
then
  echo /home/crust/run/so > /etc/ld.so.conf.d/crust.conf
  echo "add config file to /etc/ld.so.conf.d"
  /sbin/ldconfig 
  echo "reconfig ld"
else
  echo "please use root user run the script"
fi

 

分享到:
评论

相关推荐

    自动感知文件被其它程序修改,并得到修改信息

    1. **文件句柄监视**:创建一个文件句柄并设置特定的通知过滤器,如FILE_NOTIFY_CHANGE_FILE_NAME, FILE_NOTIFY_CHANGE_SIZE等,当文件发生指定的更改时,系统将发送一个通知到预先注册的回调函数。 2. **文件系统...

    如何编写批处理文件批处理文件批处理文件

    如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。 语法 call [Drive:][Path] FileName [BatchParameters] [:label [arguments] 参数 [Drive:}[Path] FileName 指定要调用的批处理程序的位置和名称...

    rarfile解压缩文件rar

    - 自动化脚本:在自动化脚本中,可以利用`rarfile`来解压配置文件或依赖库。 综上所述,`rarfile`库为Python开发者提供了处理RAR文件的强大工具,无论是解压缩还是获取文件信息,都能方便快捷地完成。在实际项目中...

    Windows 60个常用API

    - **使用场景**: 开发者在安装或部署包含OCX控件的应用程序时。 #### 11. Ellipse() - **功能**: 在指定区域内绘制椭圆。 - **使用场景**: 图形界面设计、绘图软件等。 #### 12. ExitWindowsEx() - **功能**: 通知...

    Visual Studio .NET 使用技巧手册

    - **使用场景**: 需要将资源文件(如图片、音频等)打包在应用程序内部时。 **44. 修改演示时编译器窗口的字体大小** - **功能**: 调整编译器窗口的字体大小。 - **使用场景**: 改善代码的可读性和美观度。 **...

    Php常用函数

    - **`addslashes`**:在字符串中添加反斜杠。 - **`chop`**:删除字符串结尾的空白字符。 - **`chr`**:返回指定ASCII值对应的字符。 - **`eval`**:执行字符串中的PHP代码。 - **`explode`**:使用分隔符将字符串...

    教案常用API函数参数分析.pdf

    在编写自动安装程序时,还需要用到其他几个重要的API函数,例如: 1. `GetVersion`:获取当前Windows系统版本的信息,这对于确定输入法文件的存放位置和选择合适版本的文件至关重要。 2. `CopyFile`:用于复制输入法...

    AutoIT常用函数

    ### AutoIT常用函数详解 #### 一、数学与逻辑运算函数 **1. Abs** - **功能**: 求某个数的绝对值。 - **示例**: `Abs(-5)` 返回 5。 **2. ACos** - **功能**: 求某个数的反余弦值(arcCosine)。 - **示例**: `ACos...

    Linux必学的60个命令

    - `-l`: 懒惰卸载,允许文件系统在没有活动文件句柄的情况下被卸载。 - **命令说明**:`umount` 命令用于卸载已挂载的文件系统,释放系统资源。 ##### 8. chsh - **作用**:更改用户的登录 shell。 - **格式**:`...

    精彩编程与编程技巧-开启文件属性窗口...

    - **自动化脚本**: 在批处理脚本或VBScript中,利用该函数实现自动化任务,如批量修改文件属性。 #### 四、注意事项 - 在调用 `ShellExecuteEx` 之前,确保正确初始化 `SHELLEXECUTEINFO` 结构体的所有字段。 - ...

    IFIX中一些常用功能的VBA代码.docx

    在IFIX这个强大的人机界面(HMI)组态软件中,VBA(Visual Basic for Applications)代码被广泛用于实现各种自定义功能,提高操作...在实际应用中,可以根据具体需求对这些代码进行修改和扩展,以满足不同项目的需求。

    Windows批处理高级教程精选合编.pdf

    - **<、>&、**:用于输入重定向或文件句柄操作。 - **|**:命令管道符,用于将一个命令的输出作为另一个命令的输入。 - **^**:转义字符,用于转义某些特殊字符。 - **&** 和 **&&**:分别用于并列命令或条件执行...

    linux_ulimit的使用

    2. **修改最大文件句柄数**: ``` ulimit -n 4096 ``` 将最大文件句柄数设置为 4096。这对于需要打开大量文件的应用程序非常有用,比如 Web 服务器或数据库服务器。 3. **设置最大核心文件大小**: ``` ...

    AU3控件信息获取工具

    AU3控件信息获取工具是一种自动化测试和脚本编写中常用的辅助软件,主要针对Windows操作系统上的应用程序用户界面(UI)控件进行信息检测和提取。该工具基于AutoIt(AU3)编程语言,AutoIt是一种轻量级、易学易用的...

    associateFiles.rar|associateFiles.rar

    - `fclose(fid)` 用于关闭文件句柄。 3. **文件关联**: - `associateFiles.m` 可能创建一个关联,将特定文件类型与MATLAB脚本或函数绑定,使得双击这类文件会自动用MATLAB打开并执行相应代码。 - 在Windows系统...

    详细DOS教程

    - **ATTRIB 显示或更改文件属性**:用于修改文件的属性。 **1.2 常用特殊符号** - **@**:命令行回显屏蔽符,用于隐藏命令执行。 - **%**:批处理变量引导符,用于引用变量。 - **>** 和 **>>**:重定向符,用于将...

    C++消息框设置的演示

    10. **Test.rc**:资源脚本文件,定义了应用程序的资源,如菜单、图标和消息框。消息框的文本和样式通常在这里定义。 在C++中,创建消息框通常使用Windows API的`MessageBox`函数,例如: ```cpp int result = ...

    python 两种方法修改文件的创建时间、修改时间、访问时间

    在函数执行过程中,首先打开指定路径的文件,并获取文件当前的时间属性,然后使用SetFileTime函数设置新的时间属性,最后关闭文件句柄完成操作。 示例代码中的main函数部分展示如何调用modifyFileTime函数来修改一...

Global site tag (gtag.js) - Google Analytics