编写一个shell脚本来扫描本地网络并打印表格
时间: 2023-11-15 16:13:31 浏览: 130
以下是一个简单的shell脚本,它使用nmap工具扫描本地网络并打印表格:
```
#!/bin/bash
# 获取本地IP地址
IP=$(hostname -I | awk '{print $1}')
# 扫描本地网络
nmap -sP $IP/24 > /dev/null -oG - | awk '/Up$/{print $2}' > /tmp/hosts.txt
# 打印表格
printf '%-20s %-20s\n' "IP地址" "主机名"
printf '%-20s %-20s\n' "--------------------" "--------------------"
while read host; do
name=$(nslookup $host | awk '/name = /{print $4}' | sed 's/.$//')
printf '%-20s %-20s\n' $host $name
done < /tmp/hosts.txt
# 删除临时文件
rm /tmp/hosts.txt
```
该脚本使用`hostname -I`命令获取本地IP地址,然后使用nmap工具扫描本地网络。扫描结果将保存在一个临时文件中,然后使用awk命令提取所有状态为“Up”的主机的IP地址,并使用nslookup命令获取主机名。最后,使用printf命令打印一个简单的表格来显示所有主机的IP地址和主机名。最后,删除临时文件。
相关问题
编写一个shell脚本,读取本地txt文件并存储到mysql数据库
好的,为了编写这个shell脚本,我们需要先安装mysql的命令行客户端工具,以及适当的权限让脚本连接到mysql数据库。
安装mysql客户端工具:
```
sudo apt-get update
sudo apt-get install mysql-client
```
接着,我们可以编写一个简单的shell脚本,来读取本地txt文件并存储到mysql数据库。
```bash
#!/bin/bash
# 定义mysql数据库连接信息
MYSQL_USER="your_username"
MYSQL_PASSWORD="your_password"
MYSQL_DATABASE="your_database_name"
# 定义txt文件路径和表名
FILE_PATH="/path/to/your/txt/file.txt"
TABLE_NAME="your_table_name"
# 创建mysql表
mysql -u $MYSQL_USER -p$MYSQL_PASSWORD -e "CREATE TABLE IF NOT EXISTS $TABLE_NAME (id INT AUTO_INCREMENT PRIMARY KEY, content TEXT);USE $MYSQL_DATABASE;"
# 读取txt文件并插入mysql表中
while read line; do
mysql -u $MYSQL_USER -p$MYSQL_PASSWORD -e "INSERT INTO $TABLE_NAME (content) VALUES ('$line');" $MYSQL_DATABASE
done < $FILE_PATH
```
在这个脚本中,我们首先定义了mysql数据库的连接信息,包括用户名、密码和数据库名称。接着,我们定义了要读取的txt文件路径和表名。在脚本中,我们使用mysql命令来创建表和插入数据。
最后,我们使用while循环来逐行读取txt文件,并将每一行作为一条记录插入mysql表中。
请注意,这个脚本只是一个简单的例子,你需要根据你的具体情况进行修改。同时,你需要确保你的mysql数据库已经正确配置,并且你有适当的权限来执行脚本。
编写一个shell脚本,读取本地的配置文件
可以的,以下是一个读取本地配置文件的shell脚本示例:
```bash
#!/bin/bash
# 配置文件路径
config_file="/path/to/config/file"
# 检查配置文件是否存在
if [ ! -f "$config_file" ]; then
echo "配置文件不存在!"
exit 1
fi
# 读取配置文件
while read line; do
# 忽略以#开头的注释行和空行
if [[ "$line" =~ ^#.*$|^$ ]]; then
continue
fi
# 分割键值对
key=$(echo "$line" | cut -d= -f1)
value=$(echo "$line" | cut -d= -f2)
# 设置环境变量
export "$key"="$value"
done < "$config_file"
```
使用该脚本时,只需要将`/path/to/config/file`替换为实际的配置文件路径即可。该脚本会读取配置文件中的每一行,并将键值对设置为环境变量,以便其他脚本或程序使用。请确保配置文件中每行都是`key=value`的格式,且不包含空格等其他特殊字符。
阅读全文