shell脚本自动化安装启动各种服务

1、自动化配置dns服务器

A 主机:
vim dns.sh
#!/bin/bash
# 自动化部署 dns
# 1 、下载 bind
# 2 、修改配置文件
# vim /etc/named.conf
# listen-on port 53 { 127.0.0.1;any; }; 修改(定位替换)
# allow-query { localhost;any; }; 修改(定位替换)
# vim /etc/named.rfc1912.zones (最后追加)
# zone "baibai.com" IN {
# type master;
# file "baibai.com.zone";
# allow-update { none; };
#};
# 3 、创建 zone 文件
# cd /var/named/
# cp -p named.localhost baibai.com.zone
# 4 、修改 zone 文件
# vim baibai.com.zone
# www A 10.0.0.100 ( 最后追加 )
# 5 、重启服务
# systemctl restart named
yum -y install bind
sed -i '/listen-on/ s/127.0.0.1;/127.0.0.1;any;/' /etc/named.conf
sed -i '/allow-query/ s/localhost;/localhost;any;/' /etc/named.conf
sed -i '$a zone "a.com" IN {' /etc/named.rfc1912.zones
sed -i '$a type master;' /etc/named.rfc1912.zones
sed -i '$a file "a.com.zone";' /etc/named.rfc1912.zones
sed -i '$a allow-update { none; };' /etc/named.rfc1912.zones
sed -i '$a };' /etc/named.rfc1912.zones
cd /var/named/
cp -p named.localhost a.com.zone
sed -i '$a www A 10.0.0.100' /var/named/a.com.zone
systemctl restart named
sh dns.sh
B 主机:
vim dnscs.sh
#!/bin/bash
# 测试机测试 dns
yum -y install bind-utils
echo "nameserevr 10.0.0.12" > /etc/resolv.conf
nslookup www.a.com
sh dnscs.sh
2 、自动化配置 rsync 服务
A 主机:
1 ssh-keygen
ssh-copy-id
vim rsync.sh
#!/bin/bash
# 自动化部署 rsync
# 先自己做免密
# 1 、下载 rsync inotify-tools 软件 yum -y install rsync inotify-tools
# 2 、创建共享目录与共享文件 mkdir rsync touch rsync/file{0..4}
# 3 、修改配置文件 vim /etc/rsyncd.conf (最后面追加)
# [app]
# path=/root/rsync/ // 项目路径
# log file=/var/log/rsync.log // 项目日志文件路径
# 4 、重启 rsync 服务 systemctl restart rsyncd
# 5 、写一个监控脚本 先创建一个文件 touch inotify.sh vim inotify.sh (直接最
后追加插入)
# #!/bin/bash
# /usr/bin/inotifywait -mrq -e modify,delete,create,attrib,move /root/rsync
| while read events
# do
# rsync -av --delete /root/rsync root@10.0.0.20:/tmp/
# echo "`date +%F\ %T` 出现事件 $events" >> /var/log/rsync.log 2>&1
# done
# 6 、为脚本添加执行权限 chmod +x inotify.sh
# 7 、执行监控脚本并放入后台 nohup ./inotify.sh &
yum -y install rsync
yum -y install inotify-tools
mkdir rsync
touch rsync/file{0..4}
sed -i '$a [app]' /etc/rsyncd.conf
sed -i '$a path=/root/rsync/' /etc/rsyncd.conf
sed -i '$a log file=/var/log/rsync.log' /etc/rsyncd.conf
systemctl restart rsyncd
touch inotify.sh
echo "#" > /root/inotify.sh
sed -i '$a #!/bin/bash' /root/inotify.sh
sed -i '$a /usr/bin/inotifywait -mrq -e modify,delete,create,attrib,move
/root/rsync | while read events' /root/inotify.sh
sed -i '$a do' /root/inotify.sh
sed -i '$a rsync -av --delete /root/rsync root@10.0.0.11:/tmp/'
/root/inotify.sh
sed -i '$a done'
sed -i '1d' /root/inotify.sh
chmod + x inotify.sh
nohup ./inotify.sh &
sh rsync.sh
B 主机:
测试机测试
rm -rf /tmp/*
ls /tmp/
A 主机:
touch /root/rsync/file5
B 主机:
测试机测试
ls /tmp/
3 、自动化配置 FTP 服务
A 主机:
vim ftp.sh
#!/bin/bash
# 1 、下载 vsftpd 软件包 yum -y install vsftpd
# 2 、开启 vsftpd 服务 systemctl start vsftpd
# 3 、修改 vsftpd 配置文件 vim /etc/vsftpd/vsftpd.conf (查找修改)
# anonymous_enable=NO // 不允许匿名访问
# local_root=/data/kehu // 指定用户存放文件的路径
# chroot_local_user=YES // 限定目录
# chroot_list_enable=YES // 开启用户列表文件
# chroot_list_file=/etc/vsftpd/chroot_list // 指定用户列表文件
# 4 、重启 vsftpd 服务 systemctl restart vsftpd
# 5 、创建用户 useradd kehu
# 6 、设置用户密码 echo kehu | passwd --stdin kehu
# 7 、创建存放目录 mkdir -p /data/kehu/
# 8 、为用户赋予所有权限 setfacl -R -m u:kehu:rwx /data/kehu/
# 9 、将用户放入用户列表文件中,表示不被禁锢 echo kehu >>
/etc/vsftpd/chroot_list
yum -y install vsftpd
systemctl start vsftpd
sed -i '/anonymous_enable/ s/YES/NO/' /etc/vsftpd/vsftpd.conf
sed -i '/anonymous_enable/ a local_root=/data/kehu' /etc/vsftpd/vsftpd.conf
sed -i '/chroot_local_user=YES/ s/#//' /etc/vsftpd/vsftpd.conf
sed -i '/chroot_list_enable=YES/ s/#//' /etc/vsftpd/vsftpd.conf
sed -i '/chroot_list_file/ s/#//' /etc/vsftpd/vsftpd.conf
useradd kehu
echo kehu | passwd --stdin kehu
mkdir -p /data/kehu/
setfacl -R -m u:kehu:rwx /data/kehu/
echo kehu >> /etc/vsftpd/chroot_list
systemctl restart vsftpd
sh ftp.sh
B 主机:
测试机测试
yum -y install ftp
ftp 10 .0.0.10
kehu
kehu
4 、自动化配置 frp 的服务器端与客户端
A 主机:
vim frp.sh
#!/bin/bash
# 1 、确保本机中有软件包 frp_0.33.0_linux_amd64.tar.gz
# 2 、解压软件包 tar -zxvf frp_0.33.0_linux_amd64.tar.gz
# 3 、切换到解压后的目录中 cd frp_0.33.0_linux_amd64/
# 4 、修改配置文件 vim frps.ini (全部追加)
# dashboard_user=aaa
# dashboard_pwd=aaa
# dashboard_port=7500
# 5 、启动 frp 服务 ./frps -c frps.ini
tar -zxf frp_0.33.0_linux_amd64.tar.gz
cd frp_0.33.0_linux_amd64/
sed -i '$a dashboard_user=aaa' frps.ini
sed -i '$a dashboard_pwd=aaa' frps.ini
sed -i '$a dashboard_port=7500' frps.ini
./frps -c frps.ini
sh frp.sh
B 主机:
vim frpcs.sh
#!/bin/bash
# 测试机测试 frp 服务器
# 1 、解压软件包
# 2 、切换到目录中
# 3 、修改配置文件 vim frpc.ini
# [common]
# server_addr = 10.0.0.20
# server_port = 7000
# [lijiaqi]
# type = tcp
# local_ip = 127.0.0.1
# local_port = 22
# remote_port = 6064
# 4 、启动 frp 客户端服务 ./frpc -c frpc.ini
tar -zxf frp_0.33.0_linux_amd64.tar.gz
cd frp_0.33.0_linux_amd64
sed -i '/server_addr/ s/127.0.0.1/10.0.0.10/' frpc.ini
sed -i '/[ssh]/ s/ssh/baibai/' frpc.ini
sed -i '/remote_port/ s/6000/6035/' frpc.ini
./frpc -c frpc.ini
sh frpcs.sh
5 、自动化配置 samba 共享
A 主机:
vim samba.sh
#!/bin/bash
# 自动化配置 samba 共享
# 1 、下载 samba 软件 yum -y install samba
# 2 、修改 samba 配置文件 vim /etc/samba/smb.conf (直接最后追加)
# [smb_share] // 这是共享的名称,客户端在访问时会看到这个名称。
# comment = samba service // 这是对该共享的注释说明,用于提供一些描述信息,这
里说明是 “Samba 服务
# path = /samba // 指定了实际共享的目录路径为 `/bakpu`
# guest ok = no // 表示不允许访客访问,只有经过授权的用户才能访问
# writable = yes // 表示允许对该共享目录进行写入操作
# 3 、创建共享目录 mkdir /samba
# 4 、添加 samba 用户 useradd user01
# 5 、为用户设置密码 smbpasswd -a user01
# 6 、为用户赋予所有权限 setfacl -m u:user01:rwx /bakpu/*
# 7 、启动 nmb 服务 systemctl start nmb.service
# 8 、启动 smb 服务 systemctl start smb.service
yum -y install samba
sed -i '$a [smb_share]' /etc/samba/smb.conf
sed -i '$a comment = samba service' /etc/samba/smb.conf
sed -i '$a path = /samba' /etc/samba/smb.conf
sed -i '$a guest ok = no' /etc/samba/smb.conf
sed -i '$a writable = yes' /etc/samba/smb.conf
mkdir /samba
useradd user01
echo " 现在请您输入你想要设置的账户密码: "
smbpasswd -a user01
setfacl -m u:user01:rwx /samba/
systemctl start nmb.service
systemctl start smb.service
B 主机:
测试机测试
1 、直接 windows 测试(直接映射)
2 linux 主机测试
yum -y install samba-client
smbclient //10.0.0.10/smb_share -U user01
6 、自动化配置 yum 仓库初始化(包括阿里云和 epel
A 主机:
vim yum.sh
#!/bin/bash
# 自动化配置 yum 仓库初始化(包括阿里云和 epel
# 1 、搭建本地仓库
# tar -cf /etc/yum.repos.d/yum.repo.tar /etc/yum.repos.d/*
# rm -rf /etc/yum.repos.d/*
# vim /etc/yum.repos.d/hh.repo
# [hh]
# name=hh
# baseurl=file:///mnt
# gpgcheck=0
# enable=1
# mount /dev/cdrom /mnt
# 2 、下载 wget 软件 yum -y install wget
# 3 、在阿里云官网 wget 下载阿里云镜像 wget -O /etc/yum.repos.d/CentOS-Base.repo
https://mirrors.aliyun.com/repo/Centos-7.repo
# 4 、下载 epel ,创建 epel 仓库 yum -y install epel-release.noarch
# 5 、清除缓存 yum clean all 创建缓存 yum makecache
tar -cf /etc/yum.repos.d/yum.repo.tar /etc/yum.repos.d/*
rm -rf /etc/yum.repos.d/*
echo "#" > /etc/yum.repos.d/hh.repo
sed -i '$a [hh]' /etc/yum.repos.d/hh.repo
sed -i '$a name=hh' /etc/yum.repos.d/hh.repo
sed -i '$a baseurl=file:///mnt' /etc/yum.repos.d/hh.repo
sed -i '$a gpgcheck=0' /etc/yum.repos.d/hh.repo
sed -i '$a enable=1' /etc/yum.repos.d/hh.repo
sed -i '1d' /etc/yum.repos.d/hh.repo
yum -y install wget
wget -O /etc/yum.repos.d/CentOS-Base.repo
https://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install epel-release.noarch
yum clean all
yum makecache
7 、自动化配置 nfs 服务
A 主机:
vim nfs.sh
#!/bin/bash
# 自动化配置 nfs 服务
# 1 、下载 nfs 软件与依赖软件 yum -y install nfs-utils.x86_64 rpcbind.x86_64
# 2 、创建共享目录 mkdir /nfsshare
# 3 、编辑配置文件指定要暴露的目录 vim /etc/exports (这是个新文件,直接追加最后)
# /nfsshare *(rw,sync)
yum -y install nfs-utils.x86_64 rpcbind.x86_64
mkdir /nfsshare
echo "#" > /etc/exports
sed -i '$a /nfsshare *(rw,sync)' /etc/exports
sed -i '1d' /etc/exports
systemctl start nfs-server
sh nfs.sh
B 主机:
测试机测试
yum -y install nfs-utils.x86_64
mkdir /nfs
mount -t nfs 10 .0.0.10:/nfsshare /nfs
ls /nfs
8 、自动化配置 ntp 服务
A 主机:
vim ntp.sh
#!/bin/bash
# 自动化配置 ntp 服务
# 1 、下载 ntp 软件 yum -y install ntp.x86_64
# 2 、修改 ntp 配置文件 vim /etc/ntp.conf
# 15 行加入 restrict 10.0.0.0 mask 255.255.255.0 // 允许 10.0.0.0 网段的主机访
# 3 、与官方时间服务器同步时间 ntpdate cn.ntp.org.cn
# 4 、启动 ntp 服务 systemctl start ntpd
# 5 、编辑计划任务定时同步时间 crontab -e
# * 4 * * * /usr/sbin/ntpdate cn.ntp.org.cn
yum -y install ntp.x86_64
sed -i '/restrict ::1/a restrict 10.0.0.0 mask 255.255.255.0' /etc/ntp.conf
ntpdate cn.ntp.org.cn
systemctl start ntpd
echo " 您现在可以编辑一个定时任务用于定时向官方时间服务器同步时间,以防止您当前的时间服务
器时间错误 "
echo " 你可以输入以下命令来编辑一个定时任务 "
echo "1 crontab -e"
echo "2 * 4 * * * /usr/sbin/ntpdate cn.ntp.org.cn"
echo " 该命令为每到 4 点时就进行一次时间同步 "
sh ntp.sh
B 主机:
测试机测试
date
date -s "2014-07-28 00:00"
ntpdate 10 .0.0.10
date
  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值