liunx的脚本

1、yum脚本

# 解析器
#!/bin/bash
# 判断是否有挂载点
[ -d /media/cdrom ] || mkdir /media/cdrom
# 先取消默认挂载点
umount /dev/sr0 &> /dev/null
# 挂载光盘文件
mount /dev/sr0 /media/cdrom &> /media/cdrom
# 判断是否挂载成功
[ $? -eq 0 ] && echo "挂载成功" || echo “挂载失败”
# 切换到yum包下
cd /etc/yum.repos.d
# 判断是否创建备份文件
[ -d bak ] && echo "已创建" || mkdir bak
# 备份文件
mv CentOS-*.repo bak
# 复制CentOS-Media.repo
cp bak/CentOS-Media.repo .
# 修改CentOS-Media.repo
sed -i "s#gpgchenk=1#gpgchenk=0#" CentOS-Media.repo
sed -i "s#enabled=0#enabled=1#" CentOS-Media.repo
# 清理缓存
yum -y clean all
# 创建缓存
yum makecache

2、检测主机存活脚本

#!/bin/bash
for i in [0..255]
do
  ping -c 2 -s 0.005 -w 0.005 192.168.255.$i &> /dev/null
  [ $? -eq 0 ] && echo "192.168.255.$i" >> /tmp/ipcunhuo
done

3、批量创建用户脚本

#!/bin/bash
read -p "请输入您要创建几个用户:" NUM
read -p "请输入您创建用户前缀名:" name
for ((i=1;i<=$NUM;i++))
do
  useradd $name$i
  PASSWD=echo"$RANDOM" | md5sum | cut -c 1-10
  echo "$PASSWD" | passwd --stdin $name $i &> /dev/null
  echo "$name$i $PASSWD" >> /tmp/zhanghu
done

4、获取CPU使用率

#!/bin/bash
echo $(datre) >> /root/echo_CPU.log
cpu usage=$(top -b -n1 | grep "Cpu(s)" | awk '{print $i + $4}') >> /root/echo_cpu.log
# 输出CPU使用率
echo "CPU使用率: $cpu_usage%" >> /root/echo_cpu.log
# 每隔5秒执行一次
while true; do
  sleep 10
  # 重新获取cpu使用率并更新使用
  echo $(datre) >> /root/echo_CPU.log
  cpu usage=$(top -b -n1 | grep "Cpu(s)" | awk '{print $i + $4}') >> /root/echo_cpu.log
  echo "CPU使用率:$cpu_usage%" >> /root/echo_cpu.log
done

5、查看内存脚本

#!/bin/bash
# 设置阈值,当内存占用超过该阈值时发送警告
threshold=86
while true; do
  # 使用free命令获取内存占用情况,并使用awk提取第三行的数据
  mem_info=$(free | awk ''NR==3{print $3/$2*100}')
  # 比较内存占用情况和j阈值
  if (($(echo "$mem_info > $threshold" | bc -1))); then
  fi
# 设置指定时间并监控
sleep 5
done

6、检测硬盘使用情况

#!/bin/bash
# 设置阈值,当磁盘使用率超过该阈值时发送警报
THRESHOLD=90
# 获取磁盘使用率,并提取百分比部分
usage=$(df -h | awk '$NF=="/"{print $5}')
# 检查磁盘使用率是否超过j阈值
if [ $usage -gt $THRESHOLD ]; then
  echo "磁盘使用率超过阈值,请及时清理!"
fi

7、DHCP脚本

# 必须是CentOS7下才可使用,还有一些支持包
#!/bin/bash
# 第一步:安装dhcp
yum -y install dhcp &> /dev/null
# 第二部:配置文件生成
cat /usr/share/doc/dhcp-4.2.5/dhcp.conf.example > /etc/dhcp/dhcp.conf
# 第三步:切换路径
cd /etc/dhcp/dhcp.conf
# 第四步:备份配置文件
cp dhcp.conf{,.bak}
# 第五步:获取子网掩码、IP地址、网关
# 子网掩码
NS=`ifconfig | awk -F "[: ]+" 'NR==2{print $5}'`
IPsubnet=`route -n | awk -F "[: ]+" 'NR==2{print $3}'`
Gw=`route -n | awk 'NR==4{prine $1}'`
# MAC地址获取
MAC=`ifconfig | awk -F "[: ]+" 'NR==4{print $3}'`
# IP获取
IPDZ=`ifconfig | awk -F "[ ]+" 'NR==2{print $3}'`
# 第六步:删除配置文件
rm -rf /etc/dhcp/dhcp.conf
# 第七步:请输入启示IP地址
read -p "请输入启示的IP地址:" IPstart
read -p "请输入结束的IP地址:" IPstop
# 第八部:创建配置文件
cat > /etc/dhcp/dhcpd.conf << FOF
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example .org;

default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet $IPsubnet netmask $NS {
  range $IPstart $IPstop;
  option routers $GW;
};
FOF
systemctl enable dhcpd --now
[ $? -eq 0 ] && echo "dhcp启动成功!" || echo "dhcp启动失败"

8、ftp脚本

#!/bin/bash
# 第一步:关闭防护墙
systemctl stop firewalld
# 第二步:安装ftp
yum -y install vsftpd &> /dev/null
# 第三步:查看是否安装,安装路径及命令路径
rpm -ql vsftpd
# 第四步:切换到ftp的工作路径所在地
cd /var/ftp/
# 第五步:修改pub目录的属主权限为ftp
chown ftp pub
# 第六步:修改ftp文件的配置文件
vi /etc/vsftpd/vsftpd.conf
  anon_upload_enable=YES       # 解除注释并打开权限YES/NO
  anon_umask=022               # 设置umask的权限问题
  anon_mkdir_write_enable=YES  # 解除注释并打开创建目录的权限
  anon_other_write_enable=YES  # 添加匿名用户的其他权限
  chroot_local_user=YES        # 打开监牢模式
  allow_writenable_chroot=YES  # 指定读写权限
# 第七步:启动ftp
systemctl start vsftpd
# 查看ftp进程是否看起
ps aux | grep ftp
# 查看端口默认为22端口
netstat -antup | grep ftp
# 也可在windows下请求IP进行传输

# 第八步:在其他的Client或者server上下载ftp
yum -y install ftp
# 安装后即可远程传输数据
# 黑名单与白名单
# 添加用户到ftp的黑名单中
vi /etc/vsftpd/userlist
  # 添加用户名即可
# 白名单
vi /etc/vsftpd/ftpusers
  # 添加用户名即可

9、虚拟机的创建

#!/bin/bash
# 第一步:修改配置文件
# 切换网卡路径
cd /etc/syscofig/network-scripts/
# 删除所以的ipv6和身份id(uuid)
sed -i "s#IPV6.*##" ifcfg-ens32
sed -i "s#UUID.*##" ifcfg-ens32
# 把动态ip修改成静态ip
sed -i "s#BOOTPROTO=dhcp#BOOTPROTO=static#" ifcfg-ens32
# 系统启动时是否激活网卡
sed -i "s#ONBOOT=no#ONBOOT=yes#" ifcfg-ens32
# 第二步:关闭三个服务,并修改为开机自动关闭
# 关闭防火墙
systemctl stop firewalld
# 开机默认关闭
systemctl disable firewalld
# 关闭NetworkManager
systemctl stop NetworkManager
systemctl disable NetworkManager
# 关闭selinux
setenforce 0
# 永久关闭selinux
sed -i "s#SELINUX=enforcing#SELINUX=disabled#" /etc/selinux/config
# 第三步:下载需要的支持包
yum -y install gcc gcc-c++ make automake autoconf lrzsz 
yum -y install wget openssh-client* net-tools
# 第四步:关机
init 0
# 第五步:克隆此模板机即可
# 右键此虚拟机->管理->克隆
# 克隆后添加静态IP的IPADDR、NETMASK、GATEWAY、DNS
# 加重启网络 “systemctl restart network”

10、rsync的守护进程

# ①192.168.19.102
# ②192.168.19.101
# 需要两台机器
# 第一台的ftp
systemctl start vsftpd
# 第一台安装rsync远程同步
yum -y install rsync    # ①②都安装
#  修改并备份配置文件
cd /etc/
mv rsyncd.conf rsyncd,conf.bak
cat > rsyncd.conf << FOF
fake super = yes
uid = rsync
gid = rsync
use chroot = no
max connections = 200
pid file = /var/run/rsyncd.pid
timeout = 300
lock file = /var/run.rsync.lock
log file = /var/log/rsyncd.log
[backup]
path = /backup
ignore errors
read only = false
list = false
hosts allow = 192.168.19.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
FOF
# 创建共享文件并设置属主权限、rsync用户(虚拟用户)
useradd -M -s /sbin/nologin rsync     # 创建用户
mkdir /backup
chown -R rsync /backup
# 启动rsync服务
rsync --daemon
# 创建虚拟账户的密码文件并设置权限
echo "rsync_backup:123456" > /etc/rsync.password
chmod 600 /etc/rsync.password
# 把rsync加到开机自启中
echo "rsync --daemon" > /etc/rc.d/rc.local


# 第二台
# 安装rsync
yum -y install rsync
# 创建虚拟账户的密码文件并设置权限
echo "123456" > /etc/rsync.password
chmod 600 /etc/rsync.password

# 牵引命令
rsync -avz /root/test rsync_backup@192.168.19.102::backup --password-file=/etc/rsync.password
# -avz :保持稳健各项属性不变,v同步信息,p同步过程
# /root/test:要同步的目录或文件
# rsync_backup:服务器rsync服务的同步的用户
# 192.168.19.102:rsync服务端的IP
# backup:共享文件
# --password:免密操作
# -file:指定密码文件位置

11、ssh

# 192.168.19.100 服务端
# 192.168.19.101 客户端
#!/bin/bash
# 重启sshd
systemctl restart sshd
# 安装telnet
yum -y install telnet
# 在服务端创建私钥与公钥
ssh-keygen:两个回车创建密钥与公钥

# 第三步:将本地的公钥传到客户端
scp -pr /root/.ssh/id_rsa.pub 192.168.19.101:/root/.ssh/authorized_keys
# 另一个公钥传输方法
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.19.101

12、安装

#!bin/bash
# 下载支持包/依赖包
yum install -y pcre-devel openssl-devel 
# 下载软件包nginx-1.10.2.tar.gz
wget -q http://nginx.org/download/nginx-1.10.2.tar
# 解压到/usr/src下
tar xf nginx-1.10.2.tar.gz -C /usr/src/
# 切换路径
cd /usr/src/nginx-1.10.2
# 预配置
 ./configure --user=www --group=www --prefix=/usr/local/nginx \
--with-http_stub_status_module --with-http_ssl_module
# 编译与安装
make
make install
# 创建软连接
ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
# 启动nginx
/usr/local/nginx/sbin/nginx
# 重启nginx
/usr/local/nginx/sbin/nginx -s reload
# 停止nginx
/usr/local/nginx/sbin/nginx -s stop

13、inotifywait监控目标服务器脚本

#!/bin/bash
# 目标服务器IP
server=192.168.19.103
# inotifywait 监控命令
# -rmq r:目标目录下递归监控   m:持久化监控路径  q:安静输出
# %w %f  %w:输出监控发生的路径   %f:输出监控发生的文件 
# create,delete.close_write : 创建行为,删除行为,关闭时发生写行为
# while read line  : 循环写line
inotifywait -rmq --format "%w %f" -e create.delete,close_write /root/text | while read line
do
# rsync  : 同步命令
# -az    a:以归属档方式同步    z: 压缩机制
# rsync_backup : 用户
# server::backup    server : 目标服务器ip ::  共享文件
# --password-file: 指定用户密码 
# /etc/rsync.password: 密码保存路径
rsync -az $line rsync_backup@server::backup --password-file=/etc/rsync.password
done

14、nginx配置文件

# 创建配置文件,备份掉原有的nginx.conf
cd /usr/local/nginx/conf
cp nginx.conf nginx.conf.bak
egrep -v “#|^$” nginx.conf
###nginx.conf配置文件###
# worker进程数
worker_processes  1;
# 时间区块
events {
    # 每个worker进程支持的最大连接数
    worker_connections  1024;
}
# http区块
http {
    # nginx支持,网站的资源文件,include为引用
    include       mime.types;
    default_type  application/octet-stream;
    # 高效输出
    sendfile        on;
    # 保持连接(保持三次握手的连接)
    keepalive_timeout  60;
    server {
        # 该网站监控的端口
        listen       80;
        # 网站的名称
        server_name  localhost;
        # uri同一资源标识符(用户访问资源)
        location / {
            # 用户访问的资源路径
            root   html;
            # 访问的默认路径
            index  index.html index.htm;
        }
    }
} 
######

15、almalinux配置模板机

# 第一步:关闭防火墙
systemctl status firewalld
systemctl disable firewalld
service firewalld stop
# 第二步:关闭selinux
getenforce
sed -i "s#SELINUX=enforcing#SELINUX=disable#" /etc/selinux/config
# 第三步:升级一下应用,在almalinux中yum为dnf-3的软链接
which yum
ll /usr/bin/yum
dnf updata     # 建议不要再成熟的系统下使用,升级的太多,容易崩盘掉系统中已有的项目
# 第四步:修改网卡配置文件
vi /etc/NetworkManager/system-connections/ens160.nmconnection
# 删掉uuid
# 添加ipv6注释
addressl=192.168.19.80,192.168.19.2
dns=192.168.19.2;8.8.8.8
# 关机
init 0
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,809评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,189评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,290评论 0 359
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,399评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,425评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,116评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,710评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,629评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,155评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,261评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,399评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,068评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,758评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,252评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,381评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,747评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,402评论 2 358

推荐阅读更多精彩内容

  • 【脚本1】打印形状 打印等腰三角形、直角三角形、倒直角三角形、菱形 【脚本2】截取字符串 现有一个字符串如下: h...
    学无止境_9b65阅读 459评论 0 1
  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,173评论 2 33
  • 一、简单介绍Ansible ansible是一个基于Python开发的自动化运维工具!其功能实现基于SSH远程连接...
    逗比的一生阅读 4,061评论 1 4
  • 1、ansible 是什么? ansible是目前最受运维欢迎的自动化运维工具,基于Python开发,集合了众多运...
    AD钙dddd阅读 1,965评论 0 0
  • 本文用于记录学习和日常中使用过的shell脚本 【脚本1】打印形状 打印等腰三角形、直角三角形、倒直角三角形、菱形...
    zwb_jianshu阅读 5,527评论 1 5