shell编程实战进阶

shell编程实战之系统备份脚本

日常企业运维中,需要备份Linux操作系统中重要的文件和目录,例如/etc、/boot分区、重要网站数据等,在备份数据时,由于数据量非常大,需要指定高效的备份方案,以下为常用的备份数据方案:
•□ 每周日进行完整备份,周一至周六使用增量备份;
•□ 每周六进行完整备份,周日至周五使用增量备份。
企业备份数据的工具主要有tar、cp、rsync、scp、sersync、dd等工具。以下为基于开源tar工具实现系统数据备份方案。
tar工具手动全备份网站,-g参数指定新的快照文件

tar -g /tmp/snapshot -czvf /tmp/2018_full_system_data.tar.gz /data/sh/

tar工具手动增量备份网站,-g参数指定全备已生成的快照文件,后续增量备份基于上一个增量备份快照文件,代码如下:

tar -g /tmp/snapshot -czvf /tmp/2015_add01_system_data.tar.gz /data/sh/

tar工具全备、增量备份网站,shell脚本实现自动打包备份,编程思路如下:
•□ 系统备份数据按每天存放;
•□ 创建完整备份函数块;
•□ 创建增量备份函数块;
•□ 根据星期数判断完整或增量;
•□ 将脚本加入crontab实现自动备份。

收集服务器信息

在企业生产环境中,经常会对服务器资产进行统计存档,单台服务器可以手动去统计服务器的CPU型号、内存大小、硬盘容量、网卡流量等,但如果服务器数量超过百台、千台,使用手工方式就变得非常吃力。
基于shell脚本实现自动化服务器硬件信息的收集,并将收集的内容存放在数据库,能更快、更高效地实现对服务器资产信息的管理。shell脚本实现服务器信息自动收集,编程思路如下:
•□ 创建数据库和表存储服务器信息;
•□ 基于shell四剑客awk、find、sed、grep获取服务器信息;
•□ 将获取的信息写成SQL语句;
•□ 定期对SQL数据进行备份;
•□ 将脚本加入crontab实现自动备份。

拒绝恶意IP登录

企业服务器暴露在外网,每天会有大量的人使用各种用户名和密码尝试登录服务器,如果让其一直尝试,难免会猜出密码,通过开发shell脚本,可以自动将尝试登录服务器错误密码超过设定次数的IP列表加入到防火墙配置中。
shell脚本实现服务器拒绝恶意IP登录,编程思路如下:
•□ 登录服务器日志/var/log/secure;
•□ 检查日志中认证失败的行并打印其IP地址;
•□ 将IP地址写入至防火墙;
•□ 禁止该IP访问服务器SSH 22端口;
•□ 将脚本加入crontab实现自动禁止恶意IP。

LAMP一键安装

LAMP是目前互联网主流Web网站架构,通过源码安装、维护和管理对于单台很轻松,但如果服务器数量多,手工管理就非常困难,基于shell脚本可以更快速地维护LAMP架构。
shell脚本实现服务器LAMP一键源码安装配置,编程思路如下:
•□ 脚本的功能,实现安装LAMP环境、论坛网站;
•□ Apache安装配置、MySQL、PHP安装;
•□ 源码LAMP整合配置;
•□ 启动数据库,创建数据库并授权;
•□ 重启LAMP所有服务,验证访问。

MySQL主从复制

MySQL数据库服务器主要应用于与动态网站结合,存放网站必要的数据,例如订单、交易、员工表、薪资等记录,为了实现数据备份,需引入MySQL主从架构,MySQL主从架构脚本可以实现自动化安装、配置和管理。
shell脚本实现服务器MySQL一键YUM安装配置,编程思路如下:
(1)MySQL主库的操作:
•□ 主库上安装MySQL,设置server-id、bin-log;
•□ 授权复制同步的用户,对客户端授权;
•□ 确认bin-log文件名、position位置点。
(2)MySQL从库的操作:
•□ 从库上安装MySQL,设置server-id;
•□ changemaster指定主库和bin-log名以及position;
•□ start slave启动从库I/O线程;
•□ show slave status\G查看主从的状态。

修改IP及主机名

企业中服务器IP地址系统通过自动化工具安装完系统,IP均是自动获取的,而服务器要求固定的静态IP,百台服务器手工去配置静态IP是不可取的,可以基于shell脚本自动修改IP、主机名等信息。
shell脚本实现服务器IP、主机名自动修改及配置,编程思路如下:
•□ 静态IP修改;
•□ 动态IP修改;
•□ 根据IP生成主机名并配置;
•□ 修改DNS域名解析。

Zabbix安装配置

Zabbix是一款分布式监控系统,基于C/S模式,需在服务器安装zabbix_server,在客户端安装zabbix_agent,通过shell脚本可以更快速地实现该需求。
shell脚本实现Zabbix服务器端和客户端自动安装,编程思路如下:
•□ Zabbix软件的版本源码安装、路径、–enable-server、–enable-agent;
•□ cp zabbix_agentd启动进程-/etc/init.d/zabbix_agentd,执行x权限;
•□ 配置zabbix_agentd.conf文件,指定server IP变量;
•□ 指定客户端的Hostname,可以写成客户端IP地址;
•□ 启动zabbix_agentd服务,创建Zabbix user。

Nginx虚拟主机

Nginx Web服务器的最大特点在于Nginx常被用于负载均衡、反向代理,单台Nginx服务器配置多个虚拟主机,百台服务器配置N个虚拟主机,基于shell脚本可以更加高效地配置虚拟主机及添加、管理。
shell脚本实现Nginx自动安装及虚拟主机的维护,编程思路如下:
•□ 脚本指定参数v1.jfedu.net
•□ 创建v1.jfedu.net同时创建目录/var/www/v1;
•□ 将Nginx虚拟主机配置定向到新的目录;
•□ 重复虚拟主机不再添加。

Nginx,Tomcat脚本

Tomcat用于发布JSP Web页面,根据企业实际需求,会在单台服务器配置N个Tomcat实例,同时手动将Tomcat创建后的实例加入至Nginx虚拟主机中,同时重启Nginx,开发Nginx、Tomcat自动创建Tomcat实例及Nginx虚拟主机管理脚本,这能大大地减轻人工干预,实现快速地交付。
shell脚本实现Nginx自动安装、虚拟主机及自动将Tomcat加入至虚拟主机,编程思路如下:
•□ 手动复制Tomcat与脚本一致目录(可自动修改);
•□ 手动修改Tomcat端口为6001、7001、8001(可自动修改);
•□ 脚本指定参数v1.jfedu.net
•□ 创建v1.jfedu.net Tomcat实例;
•□ 修改Tomcat实例端口,保证port唯一;
•□ 将Tomcat实例加入Nginx虚拟主机;
•□ 重复创建Tomcat实例,端口自动增加,并加入原Nginx虚拟主机,实现负载均衡。

Docker管理脚本

Docker虚拟化是目前主流的虚拟化解决方案,越来越多的企业在使用Docker轻量级虚拟化。构建、维护和管理Docker虚拟化平台是运维人员工作中非常重要的一个环节,开发Docker shell脚本可以在命令行界面快速管理和维护Docker。
shell脚本实现Docker自动安装、自动导入镜像、创建虚拟机、指定IP地址、将创建的Docker虚拟机加入Excel存档或者加入MySQL数据库,编程思路如下:
•□ 基于CentOS 6.5+或者7.X YUM安装Docker;
•□ Docker脚本参数指定CPU、内存、硬盘容量;
•□ Docker自动检测局域网IP并赋予Docker虚拟机;
•□ Docker基于pipework指定IP;
•□ 将创建的Docker虚拟机信息加入至CSV(Excel)或者MySQL库。

Bind管理脚本

Bind主要用于企业DNS平台的构建,而DNS用于将域名解析成IP,用户在浏览器只需输入域名,即可访问服务器IP地址的虚拟主机网站。
Bind难点在于创建各种记录,例如A记录、mail记录、反向记录、资源记录,基于shell脚本可以减轻人工的操作,节省大量的时间成本。
shell脚本实现Bind自动安装、初始化Bind环境、自动添加A记录、反向记录、批量添加A记录,编程思路如下:
•□ YUM方式自动安装Bind;
•□ 自动初始化Bind配置;
•□ 创建安装、初始化、添加记录函数;
自动添加单个A记录及批量添加A记录和反向记录。
shell脚本实现Bind自动安装、初始化Bind环境、自动添加A记录、反向记录、批量添加A记录。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值