centos 多脚本?centos编写shell脚本

大家好,感谢邀请,今天来为大家分享一下centos 多脚本的问题,以及和centos编写shell脚本的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

CentOS开机自动启动脚本

Linux服务器的优势在于其稳定性和安全性,但重启时手动启动程序却成为了一大痛点。为解决这一问题,可以通过编写开机自动启动脚本的方式实现程序自动运行。接下来,我们将详细介绍如何在 CentOS服务器上实现此功能。

第一步,找到适合存放启动脚本的位置。通常选择 `/etc/rc.d/rc.local`文件作为添加启动命令的入口。这一步可以通过文本编辑器打开并添加自启动命令。

例如,要启动名为 `start-my-app.sh`的脚本,可以使用以下命令:

echo"/opt/script/start-my-app.sh">>/etc/rc.d/rc.local

若需要以特定用户身份执行脚本,可以使用 `su`命令并指定用户名称。示例如下:

echo"su user1-c/opt/script/start-my-app.sh">>/etc/rc.d/rc.local

添加完成后,确保 `/etc/rc.d/rc.local`文件的执行权限被正确设置。这可以通过执行以下命令实现:

chmod+x/etc/rc.d/rc.local

至此,通过上述步骤,您已成功为 CentOS服务器编写并配置了开机自动启动脚本。在每次服务器重启时,指定的脚本将会自动执行,无需额外手动操作。这样一来,不仅提高了服务器的运行效率,也大大减少了因手动操作带来的潜在错误风险。

【实用】CentOS 7系统优化脚本

作为一名运维人员,部署操作系统的任务经常重复,操作内容大同小异。为此,可以将相同的操作制作成统一执行的脚本,通过手动输入不同部分实现自动化操作,节省大量时间。最近发现了一款好用的shell源码,稍作修改后分享给大家。

脚本主要实现系统优化功能,包括修改字符集、关闭selinux、关闭防火墙、安装常用工具和加快ssh登录等。

脚本结构如下:

1.主菜单

2.二级菜单

主要实现系统优化,如修改字符集、关闭selinux、关闭防火墙、安装常用工具和加快ssh登录等功能。

脚本代码如下:

sh

#!/bin/sh

./etc/rc.d/init.d/functions

exportLANG=zh_CN.UTF-8

#一级菜单

menu1(){

clear

cat</etc/locale.conf</dev/null

echo'#firewall-cmd--state'

firewall-cmd--state

systemctldisablefirewalld.service&>/dev/null

echo'#systemctllist-unit-files|grepfirewalld'

systemctllist-unit-files|grepfirewalld

action"完成禁用firewalld,生产环境下建议启用!"/bin/true

echo"==========================================================="

sleep5

}

#精简开机启动

chkset(){

echo"=======================精简开机启动========================"

systemctldisableauditd.service

systemctldisablepostfix.service

systemctldisabledbus-org.freedesktop.NetworkManager.service

echo'#systemctllist-unit-files|grep-E"auditd|postfix|dbus-org\.freedesktop\.NetworkManager"'

systemctllist-unit-files|grep-E"auditd|postfix|dbus-org\.freedesktop\.NetworkManager"

action"完成精简开机启动"/bin/true

echo"==========================================================="

sleep2

}

#修改文件描述符

limitset(){

echo"======================修改文件描述符======================="

echo'*-nofile65535'>/etc/security/limits.conf

ulimit-SHn65535

echo"#cat/etc/security/limits.conf"

cat/etc/security/limits.conf

echo"#ulimit-Sn;ulimit-Hn"

ulimit-Sn;ulimit-Hn

action"完成修改文件描述符"/bin/true

echo"==========================================================="

sleep2

}

#安装常用工具及修改yum源

yumset(){

echo"=================安装常用工具及修改yum源==================="

yuminstallwget-y&>/dev/null

if[$?-eq0];then

cd/etc/yum.repos.d/

\cpCentOS-Base.repoCentOS-Base.repo.$(date+%F)

ping-c1mirrors.aliyun.com&>/dev/null

if[$?-eq0];then

wget-O/etc/yum.repos.d/CentOS-Base.repo

yumcleanall&>/dev/null

yummakecache&>/dev/null

else

echo"无法连接网络"

exit$?

fi

else

echo"wget安装失败"

exit$?

fi

yum-yinstallntpdatelsofnet-toolstelnetvimlrzsztreenmapncsysstat&>/dev/null

action"完成安装常用工具及修改yum源"/bin/true

echo"==========================================================="

sleep2

}

#优化系统内核

kernelset(){

echo"======================优化系统内核========================="

chk_nf=`cat/etc/sysctl.conf|grepconntrack|wc-l`

if[$chk_nf-eq0];then

cat>>/etc/sysctl.conf</dev/null

if[$?-eq0];then

/usr/sbin/

echo"*/5****/usr/sbin/ntpdatentp.aliyun.com&>/dev/null">>/var/spool/cron/root

else

echo"ntpdate安装失败"

exit$?

fi

action"完成设置时间同步"/bin/true

echo"==========================================================="

sleep2

}

#history优化

historyset(){

echo"========================history优化========================"

chk_his=`cat/etc/profile|grepHISTTIMEFORMAT|wc-l`

if[$chk_his-eq0];then

cat>>/etc/profile<<'EOF'

#设置history格式

exportHISTTIMEFORMAT="[%Y-%m-%d%H:%M:%S][`whoami`][`whoami|awk'{print$NF}'|sed-r's#[()]##g'`]:"

#记录shell执行的每一条命令

exportPROMPT_COMMAND='\ if[-z"$OLD_PWD"];then exportOLD_PWD=$PWD; fi; if[!-z"$LAST_CMD"&&["$(history1)"!="$LAST_CMD"];then logger-t`whoami`_shell_dir"[$OLD_PWD]$(history1)"; fi; exportLAST_CMD="$(history1)"; exportOLD_PWD=$PWD;' EOF

source/etc/profile

else

echo"优化项已存在。"

fi

action"完成history优化"/bin/true

echo"==========================================================="

sleep2

}

main(){

menu1

case$num1in

1) localeset selinuxset firewalldset chkset limitset yumset kernelset sshset restartset ntpdateset historyset;;

2) menu2

case$num2in

1) localeset;;

2) selinuxset;;

3) firewalldset;;

4) chkset;;

5) limitset;;

6) yumset;;

7) kernelset;;

8) sshset;;

9) restartset;;

10) ntpdateset;;

11) historyset;;

12) main;;

13) exit;;

*) echo'Pleaseselectanumberfrom[1-13].';;

esac

;;

3) exit;;

*) echo'Err:Pleaseselectanumberfrom[1-3].' sleep3 main;;

esac

}

main$*

将脚本保存为init.sh,赋予执行权限并执行即可。

chmod+xinit.sh&&./init.sh

通过一键命令执行,同样能达到脚本的效果:

bash-c"$(curl-Ls.aaa.al/init.sh)"

如需新增功能,可在脚本基础上进行修改实现。

本书从实用角度出发,结合实际应用案例,模拟真实的系统环境,介绍电脑的使用方法与技巧,旨在帮助读者全面、系统地掌握电脑的应用。书中“高手支招”板块提供大量实用技巧,解决日常工作中遇到的常见问题。

Centos8 设置开机自启动脚本

CentOS 8系统中,传统的/etc/rc.local文件已不再自动执行开机脚本,需要通过设置 rc.local服务使其开机自启动。以下是设置步骤:

在CentOS 8中,为确保开机时执行自定义脚本,需要首先理解rc.local服务的配置。首先,检查默认的/etc/rc.local状态,确认它是/etc/rc.d/rc.local的符号链接。

接着,编辑/etc/rc.local并添加你需要的开机启动命令,确保给予可执行权限。例如,创建一个在/tmp的 txt文件:

1.打开编辑器,添加一行启动命令,如:`touch/tmp/mytxt.txt`

2.授予命令执行权限:`chmod+x/etc/rc.local`

然后,配置 rc.local服务,确保 service文件包含必要的启动指令,例如:

4.启动 rc-local服务:`systemctl start rc-local`

5.为了开机自动执行,设置服务开机启动:`systemctl enable rc-local`

测试配置:重启系统后,检查/tmp文件夹中是否生成了 txt文件。如果成功,说明脚本没有问题。删除该文件后再次重启,确认文件在下次启动时仍存在,以验证 rc-local服务配置正常。

对于 CentOS 7中的 Nginx安装,需要额外指定 yum仓库来获取 Nginx包。首先,创建一个 nginx.repo文件,配置仓库地址,然后使用 yum安装 Nginx并启动它。Nginx的配置文件位于/etc/nginx目录下,具体如下:

1.安装 Nginx:`yum install nginx`

2.配置文件位置:/etc/nginx/nginx.conf和/etc/nginx/conf.d/default.conf

3.启动、停止和检查 Nginx状态使用 systemctl命令。

4.访问 Nginx:在浏览器中输入服务器 IP地址(默认80端口,如 ``)。

完成以上步骤后,CentOS 7的 Nginx安装就完成了。

阅读剩余
THE END