当前位置: 首页 > news >正文

网站建设哈尔滨网站项目开发流程及规范

网站建设哈尔滨,网站项目开发流程及规范,北关网站制作,包河网站建设系统初始化 #!/bin/bash # 定义颜色常量 RED\033[0;31m GREEN\033[0;32m NC\033[0m # No Color #功能菜单 menu() {clearecho 请选择要执行的操作:echo 1. 检查网络echo 2. 关闭防火墙和SELinuxecho 3. 替换YUM源echo …系统初始化 #!/bin/bash # 定义颜色常量 RED\033[0;31m GREEN\033[0;32m NC\033[0m # No Color #功能菜单 menu() {clearecho 请选择要执行的操作:echo 1. 检查网络echo 2. 关闭防火墙和SELinuxecho 3. 替换YUM源echo 4. 安装必要的工具echo 5. 设置时间同步echo 6. 磁盘分区echo 7. 更新DNSecho 8. 修改SSH会话保持echo 9. 限制用户登录次数锁死时间echo 0. 退出read -p 请输入菜单编号: choicecase $choice in1) network_check ;;2) disable_firewall_selinux ;;3) replace_yum_repo ;;4) install_tools ;;5) set_time_sync ;;6) disk_partition ;;7) update_dns ;;8) modify_ssh_session ;;9) limit_user_login ;;0) exit ;;*) echo 无效的选项请重新输入! ; sleep 2; menu ;;esac } # 1. 检查网络 function network_check() {echo 正在检查网络通信ping -c1 www.baidu.com 2/dev/nullif [ $? -eq 0 ]; thenecho 你的网络是没有问题的elseecho 你的网络有问题请先检查网络exit 2fiecho 请选择网络配置方式:echo 1. 使用DHCPecho 2. 设置静态IPread -p 请输入菜单编号: choicecase $choice in1) configure_dhcp ;;2) configure_static_ip ;;*) echo 无效的选项请重新输入! ; sleep 2; network_check ;;esac }# 1.1 使用DHCP function configure_dhcp() {local ifcfg_file/etc/sysconfig/network-scripts/ifcfg-ens33# 检查文件是否存在if [ ! -f $ifcfg_file ]; thenecho 错误文件 $ifcfg_file 不存在。请确认文件路径正确。exit 1fi# 备份原始文件cp $ifcfg_file $ifcfg_file.bakecho 已备份原始文件至 ${ifcfg_file}.bak # 使用 sed 修改 BOOTPROTO 为 dhcp# 查找并替换 BOOTPROTO 的行sed -i /^BOOTPROTO/c\BOOTPROTOdhcp $ifcfg_file# 如果文件中原本没有 BOOTPROTO 这一行添加它if [ ! grep -q ^BOOTPROTO $ifcfg_file ]; thenecho BOOTPROTOdhcp $ifcfg_filefi# 注释掉或删除与静态 IP 相关的行sed -i /^IPADDR/d $ifcfg_filesed -i /^NETMASK/d $ifcfg_filesed -i /^GATEWAY/d $ifcfg_filesed -i /^DNS/d $ifcfg_file# 显示修改后的文件内容echo -e ${GREEN}修改后的 ifcfg-ens33 文件内容${NC}cat $ifcfg_file# 重启网络服务systemctl restart networkecho 已重启网络服务以启用 DHCP.# 等待一段时间让用户查看输出sleep 2# 返回主菜单menu }# 定义函数以配置静态 IP 地址 function configure_static_ip() {# 提示用户输入静态 IP 地址while true; doecho 请输入静态 IP 地址 (例如: 192.168.1.10):read -r ip_addressif [[ $ip_address ~ ^[0-9]\.[0-9]\.[0-9]\.[0-9]$ ]]; thenbreakelseecho 无效的 IP 地址格式请重试.fidone# 提示用户输入子网掩码while true; doecho 请输入子网掩码 (例如: 255.255.255.0):read -r netmaskif [[ $netmask ~ ^[0-9]\.[0-9]\.[0-9]\.[0-9]$ ]]; thenbreakelseecho 无效的子网掩码格式请重试.fidone# 提示用户输入默认网关while true; doecho 请输入默认网关 (例如: 192.168.1.1):read -r gatewayif [[ $gateway ~ ^[0-9]\.[0-9]\.[0-9]\.[0-9]$ ]]; thenbreakelseecho 无效的网关格式请重试.fidone# 提示用户输入 DNS 服务器地址while true; doecho 请输入 DNS 服务器地址 (例如: 8.8.8.8):read -r dns_serverif [[ $dns_server ~ ^[0-9]\.[0-9]\.[0-9]\.[0-9]$ ]]; thenbreakelseecho 无效的 DNS 服务器地址格式请重试.fidone# 提示用户选择网络接口echo 请输入要配置的网络接口 (例如: ens33):read -r interface# 读取现有的网卡配置文件config_file/etc/sysconfig/network-scripts/ifcfg-$interfaceif [[ ! -f $config_file ]]; thenecho 指定的网络接口配置文件不存在请检查后重试.returnfi# 备份现有的网卡配置文件echo 是否需要备份现有的网卡配置文件? [y/N]read -r backup_choiceif [[ $backup_choice ~ ^[Yy]$ ]]; thencp $config_file ${config_file}.bakecho 备份成功.fi# 更新配置文件sed -i -e s/^BOOTPROTO.*/BOOTPROTOstatic/ \-e $a\ -e IPADDR$ip_address \-e /^NETMASK/ s/.*/NETMASK$netmask/ \-e /^GATEWAY/ s/.*/GATEWAY$gateway/ \-e /^DNS1/ s/.*/DNS1$dns_server/ \-e $a\ -e NETMASK$netmask \-e $a\ -e GATEWAY$gateway \-e $a\ -e DNS1$dns_server $config_file# 显示修改后的文件内容echo -e ${GREEN}修改后的 ifcfg-ens33 文件内容${NC}cat $config_file# 重启网络服务使配置生效systemctl restart network# 输出配置完成信息echo 静态 IP 配置完成.# 返回主菜单sleep 2menu }# 2. 关闭防火墙和SELinux function disable_firewall_selinux() {systemctl stop firewalldsystemctl disable firewalldsed -i s/^SELINUX.*/SELINUXdisabled/ /etc/sysconfig/selinuxsetenforce 0echo 防火墙和SELinux已关闭.sleep 1menu }# 3. 替换YUM源 function replace_yum_repo() {echo 正在替换YUM源...#备份原yum源配置文件mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup# 下载阿里云CentOS 7 YUM源配置文件curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repocurl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repoyum clean allyum makecacheecho YUM源替换完成.sleep 2menu }# 4. 安装必要的工具 function install_tools() {yum -y install vim wget ntpdate lrzsz unzip net-toolsecho 必要工具已安装.sleep 2menu }# 5. 设置时间同步 function set_time_sync() {yum -y install ntpdatentpdate pool.ntp.org# 设置时区为上海时区可以根据需要修改为你所需的时区timedatectl set-timezone Asia/Shanghaisystemctl enable ntpdsystemctl start ntpd# 添加定时任务以每天凌晨1点同步时间(crontab -l ; echo 0 1 * * * /usr/sbin/ntpdate pool.ntp.org) | crontab -echo 时间同步已设置已加入计划任务.sleep 2menu }# 6. 磁盘分区 function disk_partition() {echo 请指定要分区的磁盘设备例如 /dev/sdb:read deviceread -p请输入分区号numread -p请输入您的起始扇区默认则直接回车 startread -p请输入您想要的分区空间空间K/M/G/T spacefdisk $device EOF n p $num $start $space p w EOFpartprobe $deviceecho 磁盘分区已完成.sleep 2menu }# 7. 更新DNS function update_dns() {echo 请输入要配置的网络接口 (例如: ens33):read -r interface# 读取现有的网卡配置文件local config_file/etc/sysconfig/network-scripts/ifcfg-$interfaceif [[ ! -f $config_file ]]; thenecho 指定的网络接口配置文件不存在请检查后重试.returnfi read -p请输入想要更新的DNS地址如114.114.114.114 8.8.8.8 DNSipsed -ir /^DNS/d $config_filesed -ir -e $a\ -e nameserver $DNSip $config_filesystemctl restart networkecho DNS更新完成.sleep 2menu }# 8. 修改SSH会话保持 function modify_ssh_session() { # sed -i s/^#Session\s*keepalive.*$/Session keepalive 60/ /etc/ssh/sshd_configread -p发送心跳包间隔如60秒 cairead -p发送最大次数如300次 cacmsed -ir s/^#ClientAliveInterval.*/ClientAliveInterval $cai/ /etc/ssh/sshd_configsed -ir s/^#ClientAliveCountMax.*/ClientAliveCountMax $cacm/ /etc/ssh/sshd_configsystemctl restart sshdecho SSH会话保持时间已修改.sleep 2menu }# 9. 限制用户登录次数锁死时间 function limit_user_login() {if ! rpm -q pam_tally2 /dev/null; thenecho -e ${RED}未检测到 pam_tally2请先安装...${NC}sudo yum install -y pam_tally2echo -e ${GREEN}pam_tally2 已安装.${NC}elseecho -e ${GREEN}pam_tally2 已经安装.${NC}fiecho 正在设置登录失败锁定...cal pam_file/etc/pam.d/sshd# 检查配置是否存在if ! grep -q auth required pam_tally2.so $pam_file; then# 添加配置echo auth required pam_tally2.so deny3 unlock_time100 even_deny_root root_unlock_time200 | sudo tee -a $pam_file /dev/nullecho -e ${GREEN}登录失败锁定已设置.${NC}elseecho -e ${GREEN}登录失败锁定已存在无需再次设置.${NC}fisystemctl restart sshdecho -e ${GREEN}SSHD 服务已重启.${NC}# 这里应该修改实际的PAM配置文件sleep 2menu }# 主程序入口 menu跳转机 #!/bin/bash# 服务器 IP 和名称列表 server_ip(192.168.175.128 192.168.175.129 192.168.175.130) server_name(web-1 web-2 mysql-server)# 遍历服务器列表 for ((i0; i${#server_ip[]}; i)) doecho ${i}---${server_ip[i]}---${server_name[i]} done# 提示用户输入要连接的序号 echo 请输入要连接的序号 read n# 判断用户输入的序号是否有效 if [[ $n -ge 0 $n ${#server_ip[]} ]]; thenecho 正在链接${server_ip[n]}# 使用 expect 脚本进行 SSH 登录/opt/expect.sh ${server_ip[n]} elseecho 请输入范围内的序号... fissh自动跳转 #!/usr/bin/expect set user root set ip [lindex $argv 0] set pass 1 spawn ssh $user$ipexpect {yes/no {send yes\r; exp_continue}password: {send $pass\r} } interact逻辑备份 #!/bin/bash echo 正在使用逻辑备份方式备份数据库 echo 正在创建逻辑备份目录 cd /opt [ -d /mysql_logic ] || mkdir -p /opt/mysql_logic if [ $? -eq 0 ];thenecho 逻辑备份目录/opt/mysql_logic已创建elseecho 逻辑备份目录创建失败请检查目录情况后运行fi backup_dir/opt/mysql_logic date$(date %Y-%m-%d) file/tmp/my.txt read -p 请输入备份使用的用户名 user read -s -p 请输入用户登录密码 pass mysql -u$user -p$pass dev/null /dev/nullif [ $? -ne 0 ];thenecho -e $user\n$pass $file echo mysql用户密码输入正确密码凭证已存储$file中将在备份完成后删除。 elseecho mysql密码输入错误请输入正确密码rm -rf /tmp/my.txtexit 1fi read -p 请输入数据库所在主机(本机:localhost远端:ip地址) host mysqlshow -u$(head -1 $file) -p$(tail -1 $file) -h$host 2 /dev/null echo 请选择备份类型 echo 1. 备份数据库 echo 2. 备份表 read -p 请输入选择1/2: bckif [ $bck 1 ]; then echo 关于备份数据库的参数 cat EOF-A, 备份所有库。 -B, 备份多个数据库。 -d 不导出任何数据只导出数据库表结构。EOFread -p 请输入所要备份的数据库名 databasemysqldump -u$(head -1 $file) -p$(tail -1 $file) $database $backup_dir/$date-$database.bck /dev/nullif [ $? -eq 0 ];thenecho 数据库备份成功else echo 数据库备份失败请检查数据库是否存在 rm -rf $use_fileexit 1 fi elif [ $bck 2 ];thenread -p 请输入备份表所在的数据库 library mysqlshow -u$(head -1 $file) -p$(tail -1 $file) -h$host $library 2 /dev/nullread -p 请输入要备份的表名(多个表名用空格分隔): tables for table in $tables;do mysqldump -u$(head -1 $file) -p$(tail -1 $file) $library $table $backup_dir/$date-${table}.sql /dev/nullif [ $? -eq 0 ];then echo 表 $table 备份成功 else echo 表 $table 备份失败 rm -rf $use_filefi done else echo 无效的选择请重新运行脚本并选择正确的备份类型 rm -rf $use_fileexit 1 fi clear rm -rf $file echo 密码文件已删除本次备份完成。物理备份 #!/bin/bash# 检查 xtrabackup 是否已安装 if ! command -v innobackupex /dev/null thenecho xtrabackup 似乎没有安装。read -p 是否要尝试自动安装(y/n): responseif [[ $response ~ ^[Yy]$ ]]; thenif [ $(id -u) -ne 0 ]; thenecho 请使用 root 权限重新运行此脚本以安装 xtrabackup。exit 1fi# 更新系统包缓存sudo yum update -ywget https://www.percona.com/downloads/percona-release/percona-release-0.1-4/redhat/percona-release-0.1-4.noarch.rpmrpm -ivh percona-release-0.1-4.noarch.rpm# 安装 xtrabackupyum -y install percona-xtrabackup-24.x86_64# 验证安装if innobackupex --version | grep -q Percona XtraBackupthenecho XtraBackup 安装成功elseecho XtraBackup 安装失败请检查错误并手动安装。fielseecho 用户选择不安装 xtrabackup。fi elseecho xtrabackup 已经安装。 fi#校准时间 #yum install -y ntpdate ntpdate cn.pool.ntp.org # MySQL 用户名和密码 read -p 请输入用户名: user read -s -p 请输入用户密码: password# 获取当前时间戳 timestamp$(date %Y-%m-%d_%H-%M-%S)# 备份目录 backup_dir/xtrabackup# 创建备份目录 mkdir -p $backup_dir /dev/null# 压缩并归档七天前的日志文件 archive_logs() {# 创建归档目录mkdir -p $backup_dir/archive_logs# 查找7天前的日志文件log_files$(find $backup_dir -name xtrabackup-*.log -mtime 7)# 如果找到了符合条件的日志文件if [ -n $log_files ]; then# 归档7天前的日志文件while IFS read -r -d file; do# 压缩日志文件tar -czf $backup_dir/archive_logs/$(basename $file).tar.gz $file# 删除原始日志文件rm $filedone echo 压缩并归档了七天前的日志文件。elseecho 没有找到7天前的日志文件进行归档。fi }# 创建备份目录 for i in {1..7}; dodir_to_create$backup_dir/z$iif [ ! -d $dir_to_create ]; thenmkdir -p $dir_to_create /dev/nullfi done# 完全备份函数 (周一) z1() {# 检查 z1 是否为空if [ -z $(ls -A $backup_dir/z1) ]; then# 执行完全备份到 z1 目录innobackupex --user$user --password$password $backup_dir/z1 $backup_dir/xtrabackup-$timestamp.log# 检查备份是否成功if [ $? -eq 0 ]; thenecho 完全备份成功。elseecho 完全备份失败。fielseecho 完全备份已存在。fi# 记录最新备份的时间戳z1$(ls -t $backup_dir/z1 | awk NR1 {print $1}) /dev/null }# 增量备份函数 (周二、三、五、六增量周四、日差异) z2() {# 执行增量备份到 z2 目录innobackupex --user$user --password$password --incremental $backup_dir/z2 --incremental-basedir$backup_dir/z1/$z1 $backup_dir/xtrabackup-$timestamp.log# 检查备份是否成功if [ $? -eq 0 ]; thenecho 增量备份成功。elseecho 增量备份失败。fi# 记录最新备份的时间戳z2$(ls -t $backup_dir/z2 | awk NR1 {print $1}) /dev/null }z3() {# 执行增量备份到 z3 目录innobackupex --user$user --password$password --incremental $backup_dir/z3 --incremental-basedir$backup_dir/z2/$z2 $backup_dir/xtrabackup-$timestamp.log# 检查备份是否成功if [ $? -eq 0 ]; thenecho 增量备份成功。elseecho 增量备份失败。fi# 记录最新备份的时间戳z3$(ls -t $backup_dir/z3 | awk NR1 {print $1}) /dev/null }z4() {# 执行差异备份到 z4 目录innobackupex --user$user --password$password --incremental $backup_dir/z4 --incremental-basedir$backup_dir/z1/$z1 $backup_dir/xtrabackup-$timestamp.log# 检查备份是否成功if [ $? -eq 0 ]; thenecho 差异备份成功。elseecho 差异备份失败。fi# 记录最新备份的时间戳z4$(ls -t $backup_dir/z4 | awk NR1 {print $1}) /dev/null }z5() {# 执行增量备份到 z5 目录innobackupex --user$user --password$password --incremental $backup_dir/z5 --incremental-basedir$backup_dir/z4/$z4 $backup_dir/xtrabackup-$timestamp.log# 检查备份是否成功if [ $? -eq 0 ]; thenecho 增量备份成功。elseecho 增量备份失败。fi# 记录最新备份的时间戳z5$(ls -t $backup_dir/z5 | awk NR1 {print $1}) /dev/null }z6() {# 执行增量备份到 z6 目录innobackupex --user$user --password$password --incremental $backup_dir/z6 --incremental-basedir$backup_dir/z5/$z5 $backup_dir/xtrabackup-$timestamp.log# 检查备份是否成功if [ $? -eq 0 ]; thenecho 增量备份成功。elseecho 增量备份失败。fi# 记录最新备份的时间戳z6$(ls -t $backup_dir/z6 | awk NR1 {print $1}) /dev/null }z7() {# 执行差异备份到 z7 目录innobackupex --user$user --password$password --incremental $backup_dir/z7 --incremental-basedir$backup_dir/z1/$z1 $backup_dir/xtrabackup-$timestamp.log# 检查备份是否成功if [ $? -eq 0 ]; thenecho 差异备份成功。elseecho 差异备份失败。fi# 记录最新备份的时间戳z7$(ls -t $backup_dir/z7 | awk NR1 {print $1}) /dev/null }# 星期判断函数 function show_date() {# 输出当前星期date %A /dev/null }# 获取当前日期 current_day$(show_date) # 转换星期名称为小写 time$(echo $current_day | awk {print tolower($0)})# 检查是否存在完全备份 if [ -z $(ls -A $backup_dir/z1) ]; then# 执行完全备份 (周一)z1 else# 执行对应的备份任务case $time inmonday)# 执行完全备份 (周一)z1;;tuesday)# 执行增量备份 (周二)z2;;wednesday)# 执行增量备份 (周三)z3;;thursday)# 执行差异备份 (周四)z4;;friday)# 执行增量备份 (周五)z5;;saturday)# 执行增量备份 (周六)z6;;sunday)# 执行差异备份 (周日)z7;;esac fi# 在每天执行完备份后归档日志 archive_logs
http://www.hkea.cn/news/14421370/

相关文章:

  • 014最新电影网站源码程序|自动采集|一键采集|静态生成|联盟利器做视频搬运工的网站
  • 网站sem怎么做h5页面制作案例
  • 盛泽做网站开发流程和步骤
  • 网站必须做可信认证wordpress好用的文件管理
  • html5可不可以建设手机网站深圳网站开发多少钱
  • vs做网站创建项目时选哪个网站有冒号怎么打开
  • 青岛国家高新区建设局网站网站搭建工具
  • 宠物网站建设策划报告沈阳做网站直播的公司
  • 网站怎样做国人wordpress企业主题
  • 传统网站和手机网站的区别wordpress固定链接 404
  • 帮别人做ppt挣钱的网站网页编辑实训报告
  • 余姚市网站建设一款教育培训咨询有限公司网站源码
  • 贵州新农村建设专业网站北京做网站推广多少钱
  • 扬州网站建设企业新网站2个月没有收录
  • 泰安北京网站建设公司哪家好seo如何提升排名收录
  • 秦皇岛北京网站建设html做校园网站
  • 沈阳网站建设推广平台个人网站建设免费分析
  • 电商建站工具二手房网签合同在哪个网站做
  • 专门做旅游的网站手机电商网站开发
  • 个人快速建站用仿站软件做的网站seo如何
  • 哈尔滨网站建设步骤襄阳信息网站建设
  • 零售户订烟电商网站在线美工
  • 上海网站开发与设互联网广告联盟
  • 浙江省网站建设与管理试卷网站开发企业开发
  • 网站建设中搭建页面结构电子商务公司门头照片
  • 黑网站代码制作科技网站建设公司
  • 做网站设计网页制作基础教程素材
  • js实现网站简体转繁体网站系统分析的主要任务包括
  • php做电商网站松原公司做网站
  • vps做网站用什么系统官方网站怎么注册