网站怎么做端口映射如何看网站的版本号

张小明 2026/1/11 11:41:50
网站怎么做端口映射,如何看网站的版本号,信阳网站建设培训,十大黑心装修公司去年做 Linux 运维时#xff0c;有个任务让我每天崩溃 —— 手动清理 10 台服务器的日志文件。每天早上#xff0c;我要登录每台机器#xff0c;执行cd /var/log、rm -rf *.log.1、tar -zcvf nginx.log.tar.gz nginx.log#xff0c;一套操作下来#xff0c;1 小时就没了。…去年做 Linux 运维时有个任务让我每天崩溃 —— 手动清理 10 台服务器的日志文件。每天早上我要登录每台机器执行cd /var/log、rm -rf *.log.1、tar -zcvf nginx.log.tar.gz nginx.log一套操作下来1 小时就没了。有次因为加班忘了清理某台服务器日志占满磁盘导致业务中断被领导批评时我忍不住想“有没有办法让这些操作自动跑”就在这时同事扔给我一个文件说“试试这个 Shell 脚本双击就能搞定所有机器的日志清理。” 我打开文件里面是几行看似简单的代码却包含了登录、执行命令、压缩文件的全流程。运行后原本 1 小时的工作3 分钟就完成了。那是我第一次意识到Shell 脚本不是 “程序员的专属工具”而是每个 Linux 使用者的 “自动化利器”。后来我花 7 天系统学完 Shell 基础把 “手动部署服务”“批量创建用户”“监控磁盘空间” 等重复任务全改成了脚本工作效率直接提升 30%。这篇文章我会用 “零基础能看懂” 的语言拆解 Shell 脚本的核心知识再通过 3 个实战案例帮你快速掌握 “用脚本解放双手” 的能力。一、先搞懂什么是 Shell 脚本它为什么能 “自动化”很多人觉得 Shell 脚本 “高深”其实它的本质特别简单 —— 就像把你在 Linux 终端里敲的命令按顺序写进一个文件里让系统 “按剧本执行”。1. 一句话说清Shell 与 Shell 脚本的关系我们可以把 Linux 系统比作 “一家餐厅”内核后厨负责真正的 “做菜”执行底层操作如读写磁盘、网络通信Shell服务员是你和后厨的 “翻译官”—— 你说 “来份宫保鸡丁”输入命令服务员传给后厨再把做好的菜执行结果端给你Shell 脚本你提前写好的 “点餐清单”把 “宫保鸡丁、米饭、可乐” 按顺序列好服务员直接按清单下单不用你重复开口。简单来说Shell 是 “命令解释器”Shell 脚本是 “多个 Shell 命令的集合文件”通过脚本你可以让系统自动执行一系列操作不用手动敲命令。2. Shell 脚本的 3 个核心优势为什么运维 / 开发都离不开它自动化重复工作像日志清理、文件备份、服务部署这类 “每天都要做” 的操作写一次脚本后续双击就能执行跨机器批量操作结合ssh命令一个脚本能同时控制 10 台、100 台 Linux 机器不用逐台登录学习成本低语法接近 Linux 命令不用像学 Python、Java 那样记复杂的类和函数零基础 7 天就能上手实战。3. 常见的 Shell 类型我们该学哪一种Linux 里有多种 Shell如 sh、bash、zsh其中bashBourne Again Shell是最常用的默认安装在 99% 的 Linux 系统CentOS、Ubuntu、Debian里也是我们要学的重点。判断你的系统是否支持 bash只需在终端输入echo $SHELL如果输出/bin/bash就说明可以直接写 bash 脚本。二、快速上手从 “环境准备” 到 “基础语法”7 天搞定核心知识零基础学 Shell 脚本不用贪多求全先掌握 “能写出实用脚本” 的核心语法即可。我把 7 天的学习计划拆解成 “环境准备→基本要素→核心语法” 三部分每部分都配 “代码示例 运行效果”跟着做就能学会。1. 第 1 天环境准备 ——3 步写出第一个 Shell 脚本写 Shell 脚本不需要复杂工具终端 文本编辑器如 vim、nano就能搞定全程 3 步步骤 1创建脚本文件在终端输入vim auto_clean_log.sh创建一个名为 “auto_clean_log.sh” 的脚本文件.sh是 Shell 脚本的默认后缀方便识别。步骤 2写脚本内容第一个 “Hello World”在 vim 里输入以下内容这是最基础的 Shell 脚本结构#!/bin/bash# 这是我的第一个Shell脚本#开头的是注释不会被执行echo开始执行日志清理脚本...# echo命令在终端输出文字date# 输出当前时间方便查看脚本执行时间#!/bin/bash指定解释器告诉系统用 bash 来执行这个脚本必须写在第一行# 注释内容用来解释脚本功能方便自己或别人看懂系统会忽略注释echo 文字输出文字到终端相当于 “打印日志”方便跟踪脚本执行过程。步骤 3赋予权限并运行Shell 脚本默认没有 “执行权限”需要先授权再运行# 步骤1赋予执行权限chmod x 文件名给文件增加“执行”权限chmodx auto_clean_log.sh# 步骤2运行脚本两种方式./auto_clean_log.sh# 方式1./表示“当前目录”推荐用这种避免和系统命令重名bashauto_clean_log.sh# 方式2直接用bash解释器运行不用提前授权运行效果终端会输出开始执行日志清理脚本... 2024年 05月 20日 星期一 14:30:00 CST到这里你已经写出并运行了第一个 Shell 脚本是不是比想象中简单2. 第 2-3 天核心语法 —— 掌握这 4 个要素能写 80% 实用脚本Shell 脚本的语法不复杂重点掌握 “变量、条件判断、循环、函数” 这 4 个要素就能应对大部分自动化场景。1变量存储数据让脚本更灵活变量就像 “小盒子”用来存数字、文字、命令结果方便后续调用。比如你想让脚本 “清理指定目录的日志”就可以用变量存 “目录路径”后续改路径时不用改整个脚本。常用变量用法示例#!/bin/bash# 1. 定义变量格式变量名值注意前后不能有空格这是新手最常踩的坑LOG_DIR/var/log# 定义“日志目录”变量存日志文件的路径BACKUP_DIR/var/backup/log# 定义“备份目录”变量存压缩后的日志CURRENT_DATE$(date%Y%m%d)# 定义“当前日期”变量$(命令)表示“执行命令并把结果存到变量里”# 2. 使用变量格式$变量名 或 ${变量名}{}可选推荐用${}避免歧义echo日志目录${LOG_DIR}echo备份目录${BACKUP_DIR}echo当前日期${CURRENT_DATE}# 3. 特殊变量系统自带的变量不用定义就能用echo脚本文件名$0# $0当前脚本的文件名echo传入的第一个参数$1# $1运行脚本时传入的第一个参数比如./script.sh 123$1就是123echo传入的参数总数$## $#运行脚本时传入的参数总数运行效果执行./test_var.sh 20240520日志目录/var/log 备份目录/var/backup/log 当前日期20240520 脚本文件名./test_var.sh 传入的第一个参数20240520 传入的参数总数12条件判断让脚本 “会做选择”条件判断用来实现 “如果满足 A 条件就执行 B 操作否则执行 C 操作”。比如 “如果日志文件存在就压缩备份否则提示文件不存在”。核心语法if-else#!/bin/bashLOG_FILE/var/log/nginx.log# 要判断的日志文件# 条件判断格式if [ 条件表达式 ]; then 操作; else 操作; fifi表示结束# 注意[ 和 ] 前后必须有空格否则会报错if[-f${LOG_FILE}];then# -f判断文件是否存在且是普通文件echo找到日志文件${LOG_FILE}开始压缩备份...tar-zcvf${LOG_FILE}_${CURRENT_DATE}.tar.gz${LOG_FILE}# 压缩文件elseecho错误未找到日志文件${LOG_FILE}fi常用条件表达式记这几个足够用表达式含义示例-f 文件判断文件是否存在且是普通文件[ -f /var/log/nginx.log ]-d 目录判断目录是否存在[ -d /var/backup ]-n 字符串判断字符串是否非空[ -n “$LOG_FILE” ]$a -eq $b判断 a 和 b 是否相等数字[ $1 -eq 100 ]$a -gt $b判断 a 是否大于 b数字[ $disk_usage -gt 80 ]3循环让脚本 “重复做一件事”循环用来实现 “重复执行某段操作”比如 “批量清理 10 个目录的日志”“给 5 个用户设置密码”。最常用的是for循环和while循环。示例 1for 循环 —— 批量处理文件#!/bin/bash# 批量清理/var/log下所有.log.1后缀的日志文件LOG_DIR/var/log# for循环格式for 变量 in 列表; do 操作; doneforlog_filein$(ls${LOG_DIR}/*.log.1);do# ls ${LOG_DIR}/*.log.1列出所有.log.1文件echo正在删除旧日志${log_file}rm-rf${log_file}# 删除旧日志doneecho批量清理完成示例 2while 循环 —— 按条件重复执行#!/bin/bash# 监控磁盘使用率当使用率超过80%时报警disk_usage$(df-h /|grep/|awk{print $5}|seds/%//g)# 获取根目录使用率数字# while循环格式while [ 条件 ]; do 操作; donewhile[${disk_usage}-gt80];do# 当使用率80%时持续报警echo警告磁盘使用率已达${disk_usage}%请及时清理sleep60# 暂停60秒后再次检查disk_usage$(df-h /|grep/|awk{print $5}|seds/%//g)# 重新获取使用率doneecho磁盘使用率正常${disk_usage}%4函数把重复代码 “打包”让脚本更简洁如果脚本里有 “多次重复的操作”可以把这些操作封装成 “函数”像调用命令一样调用减少代码冗余。函数示例 —— 封装 “日志备份” 操作#!/bin/bashCURRENT_DATE$(date%Y%m%d)# 定义函数格式函数名() { 操作; }backup_log(){locallog_file$1# local定义局部变量只在函数内有效$1函数的第一个参数localbackup_dir$2# $2函数的第二个参数echo开始备份${log_file}# 先判断备份目录是否存在不存在则创建if[!-d${backup_dir}];then# !否定-d判断目录mkdir-p${backup_dir}# -p创建多级目录fi# 压缩备份tar-zcvf${backup_dir}/$(basename${log_file})_${CURRENT_DATE}.tar.gz${log_file}}# 调用函数格式函数名 参数1 参数2backup_log/var/log/nginx.log/var/backup/logbackup_log/var/log/mysql.log/var/backup/logecho所有日志备份完成3. 第 4-7 天脚本调试 —— 新手必学的 “排错技巧”写脚本时难免出错比如语法错误、路径错误掌握调试技巧能帮你快速定位问题。1查看语法错误在终端执行bash -n 脚本名.shbash 会检查脚本的语法是否正确比如少写fi、前后有空格等错误bash-n auto_clean_log.sh# 无输出表示语法正确有错误会提示位置2跟踪执行过程执行bash -x 脚本名.shbash 会逐行输出脚本的执行过程包括 “执行了哪个命令”“变量的值是什么”方便定位哪一步出错bash-x auto_clean_log.sh# 输出示例开头的是执行的命令不带的是echo输出CURRENT_DATE20240520 backup_log /var/log/nginx.log /var/backup/log locallog_file/var/log/nginx.log localbackup_dir/var/backup/log echo开始备份/var/log/nginx.log 开始备份/var/log/nginx.log3输出错误日志在脚本里用echo 错误信息 2把错误信息输出到 “标准错误流”方便后续查看错误记录if[!-f${LOG_FILE}];thenecho错误未找到日志文件${LOG_FILE}2# 2把输出重定向到错误流exit1# exit 1脚本异常退出告诉调用者“脚本执行失败”fi三、实战 3 案例从 “理论” 到 “落地”脚本直接能用学完基础语法后一定要用实战案例巩固。下面 3 个案例是我日常工作中常用的脚本你可以直接复制修改后使用。案例 1日志自动清理 备份脚本每天执行需求每天凌晨 2 点清理 /var/log 下 3 天前的.log.1 旧日志备份当天的 nginx.log 和 mysql.log 到 /var/backup/log并输出执行日志到 /var/log/auto_backup.log。完整脚本auto_backup_log.sh#!/bin/bash# 日志自动清理备份脚本# 运行方式1. 手动执行 ./auto_backup_log.sh2. 加入crontab定时执行# 1. 定义变量LOG_DIR/var/logBACKUP_DIR/var/backup/logCURRENT_DATE$(date%Y%m%d)LOG_FILE${LOG_DIR}/auto_backup.log# 脚本自身的执行日志KEEP_DAYS3# 旧日志保留天数# 2. 函数输出日志带时间戳write_log(){echo[$(date%Y-%m-%d %H:%M:%S)]$1${LOG_FILE}# 追加日志到文件}# 3. 开始执行write_log 开始执行日志备份脚本 # 3.1 备份当天的nginx.log和mysql.logforlog_nameinnginx.logmysql.log;dofull_log_path${LOG_DIR}/${log_name}if[-f${full_log_path}];thenwrite_log正在备份日志${full_log_path}tar-zcf${BACKUP_DIR}/${log_name}_${CURRENT_DATE}.tar.gz${full_log_path}if[$?-eq0];then# $?上一个命令的执行结果0成功非0失败write_log备份成功${BACKUP_DIR}/${log_name}_${CURRENT_DATE}.tar.gzelsewrite_log错误备份${full_log_path}失败2fielsewrite_log警告未找到日志文件${full_log_path}2fidone# 3.2 清理3天前的.log.1旧日志write_log开始清理${KEEP_DAYS}天前的旧日志...find${LOG_DIR}-name*.log.1-mtime ${KEEP_DAYS}-execrm-rf{}\;# -mtime 33天前的文件write_log旧日志清理完成write_log 脚本执行结束 echo脚本执行完成日志查看${LOG_FILE}定时执行用crontab设置每天凌晨 2 点运行Linux 定时任务工具# 编辑定时任务crontab-e# 在文件末尾添加以下内容含义每天2点0分执行脚本02* * * /root/scripts/auto_backup_log.sh# 脚本路径要写绝对路径案例 2批量创建 Linux 用户脚本需求为新入职的 5 个员工创建 Linux 账号用户名分别为 user1-user5初始密码为 “Company2024”并赋予 sudo 权限。完整脚本batch_create_user.sh#!/bin/bash# 批量创建用户脚本# 运行方式sudo ./batch_create_user.sh创建用户需要root权限# 1. 检查是否为root用户创建用户必须root权限if[$(whoami)!root];then# whoami获取当前用户名echo错误请用root权限运行sudo ./batch_create_user.sh2exit1fi# 2. 定义变量USER_PREFIXuser# 用户名前缀USER_NUM5# 要创建的用户数量INIT_PWDCompany2024# 初始密码# 3. 批量创建用户for((i1;i${USER_NUM};i));dousername${USER_PREFIX}${i}# 先判断用户是否已存在ifid-u${username}/dev/null21;then# id -u检查用户是否存在/dev/null 21隐藏输出echo警告用户${username}已存在跳过创建continue# 跳过当前循环继续下一个fi# 创建用户-m创建用户家目录-s指定默认Shell为/bin/bashuseradd-m -s /bin/bash${username}# 设置密码echo 密码 | passwd --stdin 用户名非交互式设置密码echo${INIT_PWD}|passwd--stdin${username}# 赋予sudo权限把用户加入wheel组CentOS默认wheel组有sudo权限usermod-aG wheel${username}if[$?-eq0];thenecho成功创建用户${username}初始密码${INIT_PWD}请提醒用户首次登录修改密码elseecho错误创建用户${username}失败2fidoneecho批量创建用户完成案例 3磁盘使用率监控报警脚本需求每 30 分钟检查一次根目录/的磁盘使用率当使用率超过 80% 时发送邮件提醒管理员。完整脚本monitor_disk.sh#!/bin/bash# 磁盘使用率监控报警脚本# 依赖需要安装mailx工具CentOSyum install -y mailxUbuntuapt install -y mailutils# 1. 定义变量MONITOR_DIR/# 要监控的目录根目录THRESHOLD80# 报警阈值80%ADMIN_EMAILadminexample.com# 管理员邮箱CURRENT_TIME$(date%Y-%m-%d %H:%M:%S)# 2. 获取磁盘使用率数字# df -h /查看根目录磁盘信息grep /过滤根目录行awk {print $5}取第5列使用率如85%sed s/%//g去掉%disk_usage$(df-h${MONITOR_DIR}|grep${MONITOR_DIR}|awk{print $5}|seds/%//g)# 3. 判断是否超过阈值超过则发邮件if[${disk_usage}-gt${THRESHOLD}];then# 邮件主题和内容subject【警告】${MONITOR_DIR}磁盘使用率超过${THRESHOLD}%content 监控时间${CURRENT_TIME}监控目录${MONITOR_DIR}当前使用率${disk_usage}% 报警阈值${THRESHOLD}% 建议请及时清理无用文件如旧日志、备份文件避免磁盘占满导致业务中断。 # 发送邮件echo 内容 | mail -s 主题 收件人echo-e${content}|mail -s${subject}${ADMIN_EMAIL}echo[$CURRENT_TIME] 警告磁盘使用率${disk_usage}%已发送邮件提醒管理员elseecho[$CURRENT_TIME] 正常磁盘使用率${disk_usage}%低于阈值${THRESHOLD}%fi四、新手避坑指南我踩过的 5 个经典错误变量赋值有空格比如LOG_DIR /var/log错误正确是LOG_DIR/var/log——前后不能有空格否则系统会把 “LOG_DIR” 当成命令。条件判断缺空格比如if [-f ${LOG_FILE}]错误正确是if [ -f ${LOG_FILE} ]——[和]前后必须有空格这是 bash 的语法要求。路径用相对路径比如./auto_clean.sh里写rm -rf log/*.log如果在其他目录执行脚本会找不到 “log” 目录 —— 正确是用绝对路径如rm -rf /var/log/*.log。不判断命令执行结果比如直接执行tar -zcvf ...不检查是否备份成功 —— 正确是用if [ $? -eq 0 ]判断上一步是否成功避免失败了还不知道。忽略权限问题比如创建用户脚本不用 root 权限运行导致useradd命令报错 —— 正确是用sudo运行需要高权限的脚本。结语Shell 脚本的核心是 “解放你的双手”很多人学 Shell 脚本时会陷入 “追求复杂语法” 的误区其实 Shell 的核心价值是 “自动化重复工作”—— 哪怕是只有 10 行的简单脚本只要能帮你节省时间就是好脚本。我刚开始学的时候也只会写 “清理日志”“备份文件” 这类简单脚本但正是这些脚本帮我从每天重复敲命令的枯燥工作中解放出来有更多时间学习其他技能。记住学习 Shell 脚本不用 “一步到位”先从解决自己的实际问题开始 —— 比如你每天要手动备份文件就写个备份脚本每天要检查服务状态就写个监控脚本。多练、多改7 天就能上手1 个月就能熟练3 个月就能写出能落地的自动化脚本。现在打开你的 Linux 终端试着写一个 “自动备份你工作目录” 的脚本吧 —— 从实践中学习才是最快的方式网络安全学习资源分享:给大家分享一份全套的网络安全学习资料给那些想学习 网络安全的小伙伴们一点帮助对于从来没有接触过网络安全的同学我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线大家跟着这个大的方向学习准没问题。因篇幅有限仅展示部分资料朋友们如果有需要全套《网络安全入门进阶学习资源包》请看下方扫描即可前往获取
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

wp网站如何做多级联动筛选框wordpress 优质插件

3天掌握Taro跨端开发:从小白到项目上线的实战指南 【免费下载链接】taro 开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/ 项目地址: https:/…

张小明 2026/1/9 19:10:06 网站建设

水果商城网站模板吉安网站建设优化服务

浏览器远程桌面终极方案:Web RDP完整实现指南 【免费下载链接】mstsc.js A pure Node.js Microsoft Remote Desktop Protocol (RDP) Client 项目地址: https://gitcode.com/gh_mirrors/ms/mstsc.js 在数字时代的技术探索中,远程控制早已不再是专业…

张小明 2026/1/6 3:40:00 网站建设

交换友情链接的网站标准是什么缅甸局势最新消息

Kotaemon校园导览机器人学生反馈汇总 在高校数字化转型不断加速的今天,学生们早已不再满足于“登录官网→点击导航栏→逐页查找”的传统信息获取方式。面对迎新季的路线咨询、考试周的空教室查询,或是临时讲座的时间确认,他们期待的是像与朋友…

张小明 2026/1/6 3:39:29 网站建设

小说网站风格制作网站要花多少钱

网络软中断:数据包接收与传输处理详解 1. 软中断概述 在网络数据处理中,软中断(softIRQ)起着关键作用。当特定的位被置位时,意味着对应的软中断被触发,需要进行处理。我们从 softirq_vec 数组中调用相应的软中断处理函数,即 softirq_vec[iteration].action() ,其…

张小明 2026/1/10 18:38:40 网站建设

江西省建设厅业绩网站网站搭建公司哪家好

Fastboot刷机效率革命:图形化操作的终极解决方案 【免费下载链接】FastbootEnhance 项目地址: https://gitcode.com/gh_mirrors/fas/FastbootEnhance 还在为复杂的Fastboot命令行操作而头疼吗?每次刷机都像在走钢丝,生怕一个字符输错…

张小明 2026/1/10 4:09:11 网站建设

网站策划制作公司wordpress的网站好用吗

YOLOv8教室学生行为监测系统的伦理与技术边界 在智慧校园的浪潮中,越来越多学校开始尝试用AI“看懂”课堂。摄像头不再只是录像设备,而是通过算法实时分析学生的出勤、注意力状态甚至情绪波动。这种转变背后,YOLOv8这类高效目标检测模型正扮…

张小明 2026/1/10 16:40:31 网站建设