shell脚本记录开机时的PIDVID

可以使用 shell 脚本结合一些命令行工具来获取 USB 设备的 PID(Product ID)和 VID(Vendor ID),并将其以及操作时间保存到一个文本文件中。下面是一个示例脚本:

#!/bin/bash

# 获取 USB 设备信息
usb_info=$(lsusb)

# 提取 PID 和 VID
pid_vid=$(echo "$usb_info" | grep -oP 'ID \K\S+' | tr '\n' ' ')

# 获取当前时间
timestamp=$(date +"%Y-%m-%d %H:%M:%S")

# 将信息保存到文本文件
echo "PID VID: $pid_vid" >> usb_info.txt
echo "操作时间: $timestamp" >> usb_info.txt

echo "USB 设备信息已保存到 usb_info.txt 文件中!"

确保你已经安装了 lsusb 命令行工具,它通常随着常见 Linux 发行版一起安装。

将上述代码保存为一个脚本文件,例如 usb_info.sh,然后运行以下命令给予脚本执行权限:

chmod +x usb_info.sh

执行完毕后,USB 设备的 PID 和 VID 以及操作时间将会保存在 usb_info.txt 文件中。每次运行脚本时,新的信息将被追加到文件末尾。

请注意,这只能获取当前已连接的 USB 设备的信息。如果你需要监视 USB 设备的插入和拔出事件,并自动记录信息,你可能需要使用额外的工具或编写更复杂的脚本来实现。

下面是一个可以在 Shell 中重复执行重启并检查 USB 设备的示例脚本。该脚本将执行 100 次重启,并在每次重启后使用 sudo 执行 lsusb 命令来查看 USB 设备是否包含指定的 PID 和 VID。脚本会将结果和时间记录到一个文本文件中。

#!/bin/bash

# 指定的 PID 和 VID
pid="1234"
vid="5678"

# 重启并检查 USB 设备
for ((i=1; i<=100; i++))
do
  echo "==== 第 $i 次重启 ===="
  echo "$(date +"%Y-%m-%d %H:%M:%S")" >> usb_check.log
  sudo reboot
  
  # 等待系统重启完全
  sleep 60
  
  # 执行 lsusb,并检查结果是否包含指定的 PID 和 VID
  usb_info=$(sudo lsusb)
  if [[ $usb_info == *"$pid:$vid"* ]]; then
    echo "指定的 USB 设备存在"
    echo "指定的 USB 设备存在" >> usb_check.log
  else
    echo "指定的 USB 设备不存在"
    echo "指定的 USB 设备不存在" >> usb_check.log
  fi
done

echo "检查已完成,结果已保存到 usb_check.log 文件中"

自动重启脚本

#!/bin/bash

file_path="/path/to/count.txt"  # 替换为你的文本文件路径

# 检查文件是否存在
if [ ! -f "$file_path" ]; then
  echo "文件 $file_path 不存在"
  exit 1
fi

# 读取开机次数
count=$(cat "$file_path")

# 减少次数并写回文件
count=$((count-1))
echo "$count" > "$file_path"

echo "开机次数减1,剩余 $count 次"
echo 123 | sudo -S python run.py

你可能感兴趣的:(java,算法,linux)