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

南通网站快速收录网站建设招代理

南通网站快速收录,网站建设招代理,做网站要用到什么软件,长沙短视频公司系统初始化 #!/bin/bash # 定义颜色常量 RED\033[0;31m GREEN\033[0;32m NC\033[0m # No Color #功能菜单 menu() {clearecho "请选择要执行的操作:"echo "1. 检查网络"echo "2. 关闭防火墙和SELinux"echo "3. 替换YUM源"echo "…

系统初始化

#!/bin/bash
# 定义颜色常量
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # No Color
#功能菜单
menu() {clearecho "请选择要执行的操作:"echo "1. 检查网络"echo "2. 关闭防火墙和SELinux"echo "3. 替换YUM源"echo "4. 安装必要的工具"echo "5. 设置时间同步"echo "6. 磁盘分区"echo "7. 更新DNS"echo "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. 使用DHCP"echo "2. 设置静态IP"read -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.bak"echo "已备份原始文件至 ${ifcfg_file}.bak" # 使用 sed 修改 BOOTPROTO 为 dhcp# 查找并替换 BOOTPROTO 的行sed -i '/^BOOTPROTO=/c\BOOTPROTO=dhcp' "$ifcfg_file"# 如果文件中原本没有 BOOTPROTO 这一行,添加它if [ ! grep -q '^BOOTPROTO=' "$ifcfg_file" ]; thenecho "BOOTPROTO=dhcp" >> "$ifcfg_file"fi# 注释掉或删除与静态 IP 相关的行sed -i '/^IPADDR/d' "$ifcfg_file"sed -i '/^NETMASK/d' "$ifcfg_file"sed -i '/^GATEWAY/d' "$ifcfg_file"sed -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-$interface"if [[ ! -f "$config_file" ]]; thenecho "指定的网络接口配置文件不存在,请检查后重试."returnfi# 备份现有的网卡配置文件echo "是否需要备份现有的网卡配置文件? [y/N]"read -r backup_choiceif [[ $backup_choice =~ ^[Yy]$ ]]; thencp "$config_file" "${config_file}.bak"echo "备份成功."fi# 更新配置文件sed -i -e "s/^BOOTPROTO=.*/BOOTPROTO=static/" \-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=.*/SELINUX=disabled/' /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-$interface"if [[ ! -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  deny=3  unlock_time=100 even_deny_root root_unlock_time=200" | 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 ((i=0; 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 "请输入范围内的序号..."
fi

ssh自动跳转

#!/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_file"exit 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_file"fi  done  else  echo "无效的选择,请重新运行脚本并选择正确的备份类型"  rm -rf "$use_file"exit 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 XtraBackup'thenecho "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 "$file"done echo "压缩并归档了七天前的日志文件。"elseecho "没有找到7天前的日志文件进行归档。"fi
}# 创建备份目录
for i in {1..7}; dodir_to_create="$backup_dir/z$i"if [ ! -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 'NR==1 {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 'NR==1 {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 'NR==1 {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 'NR==1 {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 'NR==1 {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 'NR==1 {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 'NR==1 {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.yayakq.cn/news/142550/

相关文章:

  • 网站建设一年能收入多少钱网站以什么名字备案
  • wordpress上传完主题百度seo排名培训优化
  • 山东超越建设集团网站百度销售系统
  • 房地产网站制作公司南京量身营销型网站设计
  • 建设网站 可以用3层架构吗美工做网站尺寸多少
  • 做医药行业找药的网站wordpress 手机支付
  • 百度的网站哪来的wordpress新增目录
  • 重庆网站优化指导农业信息免费发布平台
  • wordpress+vps建站国际新闻最新消息十条摘抄
  • dj音乐网站建设开发安徽seo人员
  • 网站建设seo优化价格php网站制作教程
  • 免费做网站报价企业信息填报系统登录
  • 基于 的企业网站建设建立网站和新媒体信息发布制度
  • 管理网站开发教程ui设计较好的网站
  • 南昌大学作风建设网站福田蒙派克二手车
  • 一个人网站开发在建设银行网站上还贷
  • 台州网站开发青岛最新消息
  • 想学网站建设与设计的书籍wordpress 侧边栏跟随
  • 全网营销型的网站龙华建网站公司
  • 童程童美编程地址在哪里优化优化
  • 杭州网站推广营销服务专业的设计网站有哪些
  • PHP网站开发常用函数平台合同模板
  • 网站dns网站建设团队介绍怎么写
  • 有哪些网站开发框架wordpress获取当前页面链接
  • 网站备案网站类型网页设计参考板式
  • 做网站好做吗国外设计类网站
  • 网站右侧广告wex5做网站
  • 湛江专业建网站哪家好wordpress 微信商城模板
  • 织梦网站seo怎么做app平台
  • 关于地产设计网站石家庄网站设计培训班