Linux写结合Shell编程的小任务2--ping通网络

本文详细介绍了两个脚本示例:一个使用Bash进行网络检测,通过ping命令验证IP可达性;另一个根据日期自动执行不同类型的备份,如全量备份、增量备份或无备份。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、ping通网络

1.编写脚本

脚本解释

#! /bin/bash

这是一个 shebang,它告诉系统用哪个解释器来执行这个脚本。这里使用的是 Bash,一种常用的 shell

for i in { 1..254 }; do

这是一个 for 循环,它将从 1 迭代到 254,每次循环都会将当前迭代到的数字赋值给变量 i

Host=“10.0.0.$i”

这行代码将当前迭代的数字 i 插入到字符串 "10.0.0." 后面,形成一个完整的 IP 地址,并赋值给变量 Host

ping -c 1 -W 1 $Host > /dev/null 2>&1

这行代码使用 ping 命令来测试 Host 是否可达

-c 1:表示只发送一个 ping 请求

-W 1:设置等待每个响应的超时时间为 1 秒

$Host:表示要 ping 的 IP 地址

> /dev/null 2>&1:这部分是将 ping 命令的标准输出(stdout)和标准错误(stderr)都重定向到 /dev/null,也就是忽略所有的输出和错误信息

>/dev/null:这部分将命令的标准输出(stdout)重定向到 /dev/null/dev/null 是一个特殊的文件,它会丢弃所有写入它的数据(就像一个黑洞),读取它会立即返回文件结束(EOF)。因此,将输出重定向到 /dev/null 实际上就是丢弃这些输出。

2>&1:这部分是将标准错误(stderr,文件描述符为 2)重定向到标准输出(stdout,文件描述符为 1)当前所指向的位置。由于之前我们已经将 stdout 重定向到 /dev/null,所以这里的 2>&1 就相当于把 stderr 也重定向到 /dev/null

if [ $? -eq 0 ]; then

这行代码检查上一个命令(即 ping 命令)的退出状态。如果 ping 命令成功执行(即 IP 地址可达),那么它的退出状态码($?)会是 0

echo “Host $Host is up”

如果 IP 地址可达(即 ping 命令的退出状态码是 0),那么这行代码会被执行,打印出 IP 地址可达的信息

2.加执行权限

3.执行脚本

如图,我是可以ping通10.0.0.1和10.0.0.2的,后面还有一个我的ip地址也是显示up的,也是可以ping通的

二、根据当前日期是星期几来决定执行哪种备份

1.编写脚本

解释脚本

 $(date +%a) 来获取当前星期几的缩写

case语句用于基于变量$NOW的值执行不同的操作。这里,$NOW包含了当前日期的星期几缩写

Mon): 如果$NOW的值是Mon(即星期一),则执行该分支下的命令,即输出Full backup

Wed | Thu | Fri): 如果$NOW的值是TueWedThuFri中的任何一个(即星期二到星期五),则执行该分支下的命令,即输出Partial backup

Sat | Sun): 如果$NOW的值是SatSun(即星期六或星期日),则执行该分支下的命令,即输出No backup

*) : 这是case语句的默认分支,如果$NOW的值不匹配任何前面定义的分支,那么输出Unknown day:$NOW

;;用于终止每个分支

esaccase语句的结束标记

2.加执行权限

3.运行脚本

如上图,即成功!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值