[排错] 解决 Linux 普通用户执行 ping 命令时报错 “ping: socket: Address family not supported by protocol” 或者 “Error: ping: socket: Operation not permitted”

解决方法一:修改 net.ipv4.ping_group_range 参数

1.1 确认文件功能没有参数

# getcap /usr/bin/ping

(补充:确认没有输出结果)

1.2 修改 net.ipv4.ping_group_range 参数

# sysctl net.ipv4.ping_group_range="0 2147483647"

解决方法二:设置文件功能参数

2.1 设置文件功能参数

# setcap cap_net_raw+eip /usr/bin/ping

2.2 确认文件功能参数已经设置

# getcap /usr/bin/ping
/usr/bin/ping = cap_net_raw+eip

[命令] Linux 命令 timeout (指定命令执行的时间)

内容一:timeout 命令的格式

# timeout <option> <duration> <command>

内容二:timeout 命令的选项和持续时间的单位

2.1 timeout 命令的选项

1) -k 当达到命令结束的时间没有结束时,再经过指定时间后结束命令
2) –foreground 后台执行命令
3) –help 显示帮助信息
4) -s 或者 –signal=,在超时时发送信号,通过 “kill -l” 命令可以显示信号列表
5) –version 显示版本信息

2.2 timeout 命令的持续时间的单位

1) s,秒 (默认)
2) m,分
3) h,时
4) d,天

内容三:timeout 命令的案例

3.1 案例一:执行 10 秒钟 top 命令

# timeout 10 top

3.2 案例二:执行 1 小时 ping 命令,并在结束命令时发送 SIGKILL 信号

# timeout -s SIGKILL 1h ping eternalcenter.com

3.3 案例三:执行 1 分钟 top 命令,如果 1 分钟后命令没有停止,则再过 10 秒后结束命令

# timeout -k 10s 1m top