59 lines
1.9 KiB
Bash
59 lines
1.9 KiB
Bash
#!/bin/bash
|
|
|
|
# 脚本用于检查和修复远程节点上的apt临时文件权限问题
|
|
|
|
# 定义需要检查的节点列表
|
|
NODES=('ash2e' 'ash1d' 'ch2')
|
|
|
|
# 循环检查每个节点
|
|
for NODE in "${NODES[@]}"; do
|
|
echo "\n===== 检查节点: $NODE ====="
|
|
|
|
# 检查SSH连接是否可用
|
|
if ! ssh -q -o BatchMode=yes -o ConnectTimeout=5 root@$NODE "echo Connected > /dev/null"; then
|
|
echo "错误: 无法连接到节点 $NODE"
|
|
continue
|
|
fi
|
|
|
|
echo "成功连接到节点 $NODE"
|
|
|
|
# 1. 检查/tmp目录权限
|
|
echo -n "检查/tmp目录权限: "
|
|
ssh root@$NODE "ls -ld /tmp"
|
|
|
|
# 2. 检查磁盘空间
|
|
echo "检查磁盘空间:"
|
|
ssh root@$NODE "df -h"
|
|
|
|
# 3. 测试创建临时文件
|
|
echo -n "测试创建临时文件: "
|
|
if ssh root@$NODE "touch /tmp/test-apt-temp-$$ 2>/dev/null && echo 成功 && rm -f /tmp/test-apt-temp-$$"; then
|
|
echo "临时文件创建成功"
|
|
else
|
|
echo "错误: 无法创建临时文件"
|
|
# 尝试修复/tmp目录权限
|
|
echo "尝试修复/tmp目录权限..."
|
|
ssh root@$NODE "chmod 1777 /tmp"
|
|
fi
|
|
|
|
# 4. 清理apt缓存
|
|
echo "清理apt缓存..."
|
|
ssh root@$NODE "apt clean"
|
|
|
|
# 5. 尝试运行apt update测试
|
|
echo "测试apt update (仅输出前10行)..."
|
|
ssh root@$NODE "apt update 2>&1 | head -n 10"
|
|
|
|
echo "\n节点 $NODE 检查完成\n"
|
|
done
|
|
|
|
# 提供额外的修复建议
|
|
echo "\n===== 修复建议 ====="
|
|
echo "1. 如果问题仍然存在,请检查以下内容:"
|
|
echo " - /etc/apt/apt.conf文件中的配置"
|
|
echo " - apt-key命令的完整性 (dpkg -l apt)
|
|
echo " - 系统的临时文件清理服务状态"
|
|
echo "2. 可以尝试的命令:"
|
|
echo " - dpkg --configure -a"
|
|
echo " - apt-get install --reinstall apt apt-utils"
|
|
echo "3. 对于特定节点的持久问题,建议登录到该节点进行更详细的故障排除。" |