Linux Shell脚本专栏_服务器系统配置初始化脚本_01

文章目录

  • 一、服务器系统配置初始化
    • 1. 设置时区并同步时间
      • ① 脚本编写
      • ②脚本说明
    • 2. 禁用selinux
      • ① 脚本编写
      • ②脚本说明
    • 3. 关闭防火墙
      • ① 脚本编写
      • ②脚本说明
    • 4. 历史命令显示操作时间
      • ① 脚本编写
      • ②脚本说明
    • 5. 禁止root远程登录
      • ① 脚本编写
      • ②脚本说明
    • 6. 禁止定时任务发送邮件
      • ① 脚本编写
      • ②脚本说明
    • 7. 设置最大打开文件数
      • ① 脚本编写
      • ②脚本说明
    • 8. 较少Swap使用
      • ① 脚本编写
      • ②脚本说明
    • 9. 系统内核参数优化
      • ① 脚本编写
      • ②脚本说明
    • 10. 安装系统性能分析工具及其他
      • ① 脚本编写
      • ②脚本说明
    • 11. SSH超时时间
      • ① 脚本编写
      • ②脚本说明
  • 二、脚本集成+可执行权限
    • 2.1. 全部脚本集成版本
    • 2.2. 赋予脚本可执行权限
    • 2.3. 运行脚本
    • 2.4. 不赋予权限运行脚本
    • 2.5. 脚本调试技巧
    • 2.6. 脚本格式转换
  • 三、验证
    • 3.1. 刷新使脚本生效
    • 3.2. 查看命令
    • 3.3. 查看追加的环境变量

一、服务器系统配置初始化

背景:新购买10台服务器冰冰安装Linux操作
需求:1. 设置时区并同步时间2. 禁用selinux3. 关闭防火墙4. 李世明令显示操作时间5. 禁止root远程登录6. 禁止定时任务发送邮件7. 设置最大打开文件数8. 较少Swap使用9. 系统内核参数优化10.安装系统性能分析工具及其他 

1. 设置时区并同步时间

① 脚本编写

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
if ! crontab -l |grep ntpdate &>/dev/null ; then(echo "* 1 * * * ntpdate ntp1.aliyun.com >/dev/null 2>&1";hwclock -w;crontab -l) |crontab 
fi

②脚本说明

查看系统信息

[root@ly-01 ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core)
#查看当前默认时区 UTC
[root@ly-01 ~]# date
Mon Feb 24 08:59:26 CST 2020#修改时区为亚洲上海时区
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime#安装Linux系统时间同步服务软件:ntpdate 如果已安装,则跳过此步骤
[root@localhost ~]# yum -y install ntpdate#Linux系统时间同步 
#让当前服务器同步到网络时间,从而来更新当前服务器的时间。以下命令表示的是让当前服务器时间同步到ntp1.aliyun.com
[root@localhost ~]# ntpdate ntp1.aliyun.com
#Linux硬件时间同步:修改服务器硬件时间映射到我们的系统时间,也可以说系统时间同步到硬件时间,防止系统重启后时间还原。
hwclock -w#定时同步,牵扯到定时任务
#查看当前用户的定时任务
[root@ly-01 ~]# crontab -l
#给当前用户添加定时任务
[root@ly-01 ~]# crontab -e#同步时间规则,每天1点同步一次
* 1 * * *#将错误追加为空 >前面下具体执行的命令
>/dev/null 2>&1#判断现定时任务列表中是否有次定时任务,有,则跳过下面设置定时任务的逻辑
if ! crontab -l |grep ntpdate &>/dev/null ;
#下面这是一组命令 可直接执行
(echo "* 1 * * * ntpdate ntp1.aliyun.com >/dev/null 2>&1";hwclock -w;crontab -l) |crontab

在这里插入图片描述

2. 禁用selinux

① 脚本编写

sed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config

②脚本说明

#流编辑器
sed
#写入或者修改
-i
#区配关键字
/SELINUX
#将/etc/selinux/config文件中值为permissive替换为disabled
/permissive/disabled/ /etc/selinux/config#咱们手动编辑修改一样的
vim /etc/selinux/config
#替换值permissive为disabled即可

3. 关闭防火墙

① 脚本编写

if egrep "7.[0-9]" /etc/redhat-release &>/dev/null; thensystemctl stop firewalldsystemctl disable firewalld
elif egrep "6.[0-9]" /etc/redhat-release &>/dev/null; thenservice iptables stopchkconfig iptables off
fi

②脚本说明

这是一个centos7和centos6 2个版本防火墙脚本
先去查看/etc/redhat-release文件中的系统版本内容,然后用正则表达式区配7.x还是6.x,然后使用管道命令过滤,最后,针对不同系统走不同分支

4. 历史命令显示操作时间

当前用户什么时间执行的什么命令

① 脚本编写

if ! grep HISTTIMEFORMAT /etc/bashrc; thenecho 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/bashrc
fi

②脚本说明

#export HISTTIMEFORMAT 将此变量输出到环境变量中
#%F %T                 日期时间格式
#whoami                当前用户
export HISTTIMEFORMAT="%F %T `whoami` "
history


在这里插入图片描述
后:
在这里插入图片描述

5. 禁止root远程登录

① 脚本编写

#sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config

②脚本说明

此设置要慎重:执行此设置之前一定要提前把管理用户创建好,不然,服务器登录不上,建议先把此配置注释,改为yes root就登录不上了
编辑/etc/ssh/sshd_config文件,将#PermitRootLogin yes 注释去掉

6. 禁止定时任务发送邮件

① 脚本编写

操作错误时,服务器会定时发送邮件,目录在/var/mail/下面,导致小文件增多,影响服务器性能,上面的追加错误为空,也是为了这个目的

sed -i 's/^MAILTO=root/MAILTO=""/' /etc/crontab

②脚本说明

# 编辑/etc/crontab文件
vim /etc/crontab
#替换格式
's/^
#替换的目标对象
MAILTO=root
#替换后的值等于什么
MAILTO=""

7. 设置最大打开文件数

① 脚本编写

if ! grep "* soft nofile 65535" /etc/security/limits.conf &>/dev/null; then
cat >> /etc/security/limits.conf << EOF* soft nofile 65535* hard nofile 65535
EOF
fi

②脚本说明

# * 域的范围,*代表所有
# soft 类型 有soft 和hard 2种
#nofile 表示打开最大文件数
#65535 最大文件数数量* soft nofile 65535#简单的来说
#就是编辑/etc/security/limits.conf这个文件追加这2行内容

8. 较少Swap使用

① 脚本编写

echo "0" > /proc/sys/vm/swappiness

②脚本说明

编辑/proc/sys/vm/swappiness文件修改值

9. 系统内核参数优化

① 脚本编写

cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_tw_buckets = 20480
net.ipv4.tcp_max_syn_backlog = 20480
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_fin_timeout = 20  
EOF

②脚本说明

编辑/etc/sysctl.conf文件追加下面参数#当tcp溢出时一个保护机制策略
net.ipv4.tcp_syncookies = 1
#最大队列长度
net.ipv4.tcp_max_tw_buckets = 20480
#接收syn的队最大列长度
net.ipv4.tcp_max_syn_backlog = 20480
#网卡的最大队列长度
net.core.netdev_max_backlog = 262144
#超时设置
net.ipv4.tcp_fin_timeout = 20  
#查看系统默认参数
[root@ly-01 mail]# sysctl -a |grep syn_ba

在这里插入图片描述

10. 安装系统性能分析工具及其他

① 脚本编写

yum install gcc make autoconf vim sysstat wget unzip  net-tools iostat iftop iotp lrzsz -y

②脚本说明

在这里插入代码片

11. SSH超时时间

用于咱们ssh登录后的超时时间,栗子:你通过ssh登录服务器,在一定时间被没有做任何操作
设置超时时间安全性好

① 脚本编写

if ! grep "TMOUT=600" /etc/profile &>/dev/null; thenecho "export TMOUT=600" >> /etc/profile
fi

②脚本说明

#将此变量追加到系统环境变量的配置文件中
echo "export TMOUT=600" >> /etc/profile

二、脚本集成+可执行权限

2.1. 全部脚本集成版本

#创建存储脚本的目录
mkdir shell_scripts
#创建脚本文件
vim 1.sh
#粘贴下面内容
#/bin/bash
# 设置时区并同步时间
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
if ! crontab -l |grep ntpdate &>/dev/null ; then(echo "* 1 * * * ntpdate ntp1.aliyun.com >/dev/null 2>&1";hwclock -w;crontab -l) |crontab 
fi# 禁用selinux
sed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config# 关闭防火墙
if egrep "7.[0-9]" /etc/redhat-release &>/dev/null; thensystemctl stop firewalldsystemctl disable firewalld
elif egrep "6.[0-9]" /etc/redhat-release &>/dev/null; thenservice iptables stopchkconfig iptables off
fi# 历史命令显示操作时间
if ! grep HISTTIMEFORMAT /etc/bashrc; thenecho 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/bashrc
fi# SSH超时时间
if ! grep "TMOUT=600" /etc/profile &>/dev/null; thenecho "export TMOUT=600" >> /etc/profile
fi# 禁止root远程登录
#sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config# 禁止定时任务向发送邮件
sed -i 's/^MAILTO=root/MAILTO=""/' /etc/crontab # 设置最大打开文件数
if ! grep "* soft nofile 65535" /etc/security/limits.conf &>/dev/null; then
cat >> /etc/security/limits.conf << EOF* soft nofile 65535* hard nofile 65535
EOF
fi# 系统内核优化
cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_tw_buckets = 20480
net.ipv4.tcp_max_syn_backlog = 20480
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_fin_timeout = 20  
EOF# 减少SWAP使用
echo "0" > /proc/sys/vm/swappiness# 安装系统性能分析工具及其他
yum install gcc make autoconf vim sysstat wget unzip  net-tools iostat iftop iotp lrzsz -y	

2.2. 赋予脚本可执行权限

chmod +x 1.sh

2.3. 运行脚本

#在当前目录下面,运行脚本
./1.sh

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4. 不赋予权限运行脚本

bash 脚本名称

2.5. 脚本调试技巧

哪一行报错,就把相关的脚本复制出来,单独创建一个.sh的文件,招贴内容到文件中,用bash +脚本文件名,运行脚本

2.6. 脚本格式转换

在Windows编辑的脚本在Linux运行有时会发生格式或者语法问题
解决方案:

#安装dos2unix
yum install dos2unix -y

在这里插入图片描述

# dos2unix 脚本名称dos2unix 1.sh

在这里插入图片描述

#再次运行脚本
./1.sh

三、验证

3.1. 刷新使脚本生效

source /etc/bashrc

3.2. 查看命令

#查看命令
cat /etc/bashrc

在这里插入图片描述

3.3. 查看追加的环境变量

cat /etc/profile

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521197.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

公文字体字号标准2020_手把手教你写公文——红头文件的制作技巧

前言&#xff1a;不管你是在行政部门、事业单位&#xff0c;国企&#xff0c;还是在私企&#xff0c;只要是在办公室工作&#xff0c;一定会接触到公文处理的相关事务。大家都知道&#xff0c;红头公文作为一种有法律效力的文书&#xff0c;其规范性尤为重要&#xff0c;而国家…

计算机专业的学生也太太太太太惨了吧?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 景岁责编 | 阿秃最近又到了开学季&#xff0c;又一群懵懂的大学新生怀着憧憬走进了校园&#xff0c;如果让学长学姐们用一个词给学弟学妹们形容自己的专业的话&#xff0c;有的也许是“忙碌”&#xff0c;有的也许是“充实”…

19个AI热门应用领域,你确定不了解一下?

摘要&#xff1a; 19个AI热门应用领域&#xff0c;你知道多少&#xff1f; 1. 自然语言生成&#xff08;Natural Language Generation&#xff09; 自然语言生成是人工智能的分支&#xff0c;研究如何将数据转化为文本&#xff0c;用于客户服务、报告生成以及市场概述。 2.语…

koa2 mysql增删改查_koa2对mongodb的增删改查

构建项目npm install -g koa-generatorkoa2 -e projectnamenpm install mongoose说明&#xff1a;我们用mongoose来操作mongodb&#xff0c;需要安装mongoose。生成项目后&#xff0c;在项目里新建一个文件夹dbs&#xff0c;用来存放和数据库相关的配置文件&#xff0c;配置文件…

人工智能的时代来了,新的商业机会在哪里?

摘要&#xff1a; 新的时代到来意味着新的商业社会的到来&#xff0c;那么这些新的商业机会在哪里呢&#xff1f; 提起人工智能&#xff0c;大多数人脑子里首先跳出的可能是这些问题&#xff0c;人工智能会使人类都失业吗&#xff1f;人工智能真的可以有自我意识以及情感吗&am…

python解析excel公式_[python][openpyxl]读取excel中公式的结果值

要读取cell中的值&#xff0c;但是&#xff0c;如果cell中的值是一个公式&#xff0c;则读取出来的是公式。有时候我们希望读取到公式计算出来的结果&#xff0c;可以使用load_workbook()中的data_only属性。 load_workbook()中涉及到的全部属性&#xff0c;其中&#xff0c;re…

Linux Shell脚本专栏_Linux系统发送告警邮件脚本_02

文章目录一、Linux系统发送告警邮件脚本1. 安装mailx工具2. 编辑mailx配置文件3. 追加以下内容4. 发送邮件测试二、异常汇总2.1. 异常信息2.2. 开启授权码一、Linux系统发送告警邮件脚本 背景&#xff1a;外部服务器 需求&#xff1a;1. 安装mailx工具2. 编辑mailx配置文件3. …

任正非采访的数据分析解读

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 林骥责编 | 阿秃2019 年 5 月 21 日&#xff0c;任正非接受国内媒体的采访&#xff0c;如果用文字转述的话&#xff0c;总共大约有 2.2 万个字。本文总结了任正非在采访中说的一些数据&#xff0c;并做了简单的分析解读&…

阿里推出 PolarFS 分布式文件系统:将存储与计算分开,提升云数据库性能(附论文)

摘要&#xff1a; 将存储与计算分开来大有意义&#xff0c;对于部署的云数据库而言更是如此。为此&#xff0c;阿里巴巴推出了一种新开发的名为PolarFS的分布式文件系统&#xff0c;旨在确保低延迟和高可用性。这个文件系统与阿里云上自己的PolarDB数据库服务搭配使用。 将存储…

ios开发 热搜词demo_手机app如何开发

泛娱科技​www.cpdzapp.com手机app开发流程为&#xff1a;1.首先&#xff0c;制作一款APP&#xff0c;必须要有相关的idea&#xff0c;也就是说&#xff0c;第一步是APP的idea形成。2.通过那些idea来进行APP的主要功能设计以及大概界面构思和设计。3.大功能模块代码编写以及大概…

Linux Shell脚本专栏_批量创建100用户并设置密码脚本_03

文章目录一、简单需求实现流程1. 添加用户2. 给用户设置密码二、企业需求实现流程2.1. 脚本准备工作2.2. 企业级脚本2.2. 需求说明2.3. 企业级脚本说明三、实战3.1. 运行脚本3.2. 查看创建的用户3.3. 查看文件中的用户和密码信息一、简单需求实现流程 背景&#xff1a;新入职1…

【大数据】Spark面试100问 | CSDN博文精选

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 游骑小兵责编 | 阿秃Q&#xff1a;什么是Spark&#xff1f;A&#xff1a;简单理解&#xff0c;Spark是在Hadoop基础上的改进&#xff0c;是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架&#xff0c;…

为数据安全而生,阿里云容灾备份方案场景实践解析

摘要&#xff1a; 数字经济时代&#xff0c;数据正以超出想象的速度快速增长。短短几年&#xff0c;数据量已经从TB级别跃升到PB乃至ZB级别。 数字经济时代&#xff0c;数据正以超出想象的速度快速增长。短短几年&#xff0c;数据量已经从TB级别跃升到PB乃至ZB级别。 根据相关…

Dubbo项目入门

摘要&#xff1a; Dubbo是一款高性能、轻量级的开源Java RPC框架&#xff0c;它提供了三大核心能力&#xff1a;面向接口的远程方法调用&#xff0c;智能容错和负载均衡&#xff0c;以及服务自动注册和发现。 它的特性如下 面向接口代理的高性能RPC调用 智能负载均衡 服务自动注…

linux 编辑器_Linux的vi编辑器详细总结

《大数据和人工智能交流》头条号向广大初学者新增C 、Java 、Python 、Scala、javascript 等目前流行的计算机、大数据编程语言&#xff0c;希望大家以后关注本头条号更多的内容。vi是linux的文本编辑器&#xff0c;vim是vi编辑器的增强版本&#xff0c;习惯上也称为vi一、vi编…

聊聊困扰很多同学的一个问题:是否要转方向 ?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 大飞码字责编 | 阿秃这篇来聊聊困扰很多同学的一个问题&#xff1a;是否要转方向 ?这类问题没有标准的答案&#xff0c;每个人的理解也不一样&#xff0c;我写下的也只是我个人的想法&#xff0c;仅供大家参考。iOS 开发本…

傅里叶变换处理sar图像_SAR和ISAR雷达的基础知识

合成孔径雷达(SAR)和逆合成孔径雷达(ISAR)是使用雷达绘制静止物体(通常为地形)的方法。SAR/ISAR系统部署在飞机或卫星上&#xff0c;它们相对于地球表面或任何可能静止的物体或地形进行高速移动。SAR/ISAR得益于以下现象&#xff1a;相对于地形水平方向上的物体和/或天线&#…

带你玩转Logview: MaxCompute Logview参数详解和问题排查

Logview是MaxCompute Job提交后查看和Debug任务的工具。通过Logview可看到一个Job的运行状态、运行结果以及运行细节和每个步骤的进度。当Job提交到MaxCompute后&#xff0c;会生成Logview的链接&#xff0c;用户可以直接在浏览器上打开Logview链接&#xff0c;进入查看Job的信…

Linux Shell脚本专栏_找出占用CPU/内存过高的进程_05

文章目录找出占用CPU/内存过高的进程1. 脚本2. 运行脚本3. 效果图找出占用CPU/内存过高的进程 1. CPU 过高的进程2. 内存 过高的进程1. 脚本 #/bin/bash echo "----------------------- CPU TOP 10------------------------" ps -eo user,pid,pcpu,pmem,args --sort…

阿里云大数据计算服务MaxCompute命令行工具——odpscmd的操作使用

在MaxCompute生态中&#xff0c;命令行工具究竟处于什么样的位置&#xff1f;它又发挥着什么样的作用&#xff1f;能够帮助开发者如何更好使用MaxCompute&#xff1f;在本文中&#xff0c;阿里巴巴计算平台产品专家曲宁将通过一个完整简单的小例子为大家介绍MaxCompute命令行工…