1
zhouscloud 311 天前
以前写过个脚本 放在树莓派上自己跑 断网会在 Log 文件夹生成记录:
#!/bin/bash WGET="/usr/bin/wget" second=0 for (( ; ; )) do $WGET -q --tries=1 --timeout=1 http://www.baidu.com -O /tmp/file.idx &> /dev/null if [ ! -s /tmp/file.idx ] then if [ "$second" -eq "1" ] then echo "$(date +"%Y-%m-%d %H:%M:%S "): Disconnected" >> ./Log/network_connection-$(date +"%Y-%m-%d").log fi let "second += 1" else if [ "$second" -gt "1" ] then echo "$(date +"%Y-%m-%d %H:%M:%S "): Reconnected, downtime: $second 's" >> ./Log/network_connection-$(date +"%Y-%m-%d").log fi second=0 fi sleep 1 done |
2
AoEiuV020JP 311 天前
@zhouscloud #1 看这意思,没把 wget 的报错也写入日志里吗?是否有必要呢,
另外开头可以加一个 mkdir -p ./Log 否则等出问题才发现没有文件夹就坑了, |
3
AoEiuV020JP 311 天前 1
参考楼上的我改个自己用用看看,
主要是改请求 204 ,一方面网络流量更小些,一方面能检测到宽带欠费之类的页面异常跳转的情况, 顺便把失败的请求详情写进日志里, 再在终端打印点东西,免得看着空白,配合 screen 使用, 没有经过时间验证, #!/bin/bash mkdir -p ./Log second=0 for (( ; ; )); do rm ./Log/test.out code=$(curl --connect-timeout 1 -sS -L -o ./Log/test.out -w '%{http_code}' 'http://connect.rom.miui.com/generate_204' 2>./Log/test.err) if [ "$code" -ne "204" ]; then if [ "$second" -eq "1" ]; then logFile=./Log/network_connection-$(date +"%Y-%m-%d").log echo "$(date +"%Y-%m-%d %H:%M:%S "): Disconnected, code: $code" >> $logFile cat ./Log/test.err >> $logFile cat ./Log/test.out >> $logFile fi let "second += 1" else if [ "$second" -gt "1" ]; then logFile=./Log/network_connection-$(date +"%Y-%m-%d").log echo "$(date +"%Y-%m-%d %H:%M:%S "): Reconnected, downtime: $second 's" >> $logFile fi second=0 fi echo $code, $second sleep 1 done |
4
CSGO OP AI 最终给我推荐使用 mtr ,我感觉还行:
Wi-Fi-Mac-Studio.local (192.168.0.199) -> 114.114.1142024-01-09T16:26:56+0800 Keys: Help Display mode Restart statistics Order of fields quit Last 48 pings 1. 192.168.0.1 ..............1..............2..............1... 2. 192.168.1.1 111111111111111211111111111111111111111111111111 3. 115.216.116.129 221122121222211122213312121111211221231111111111 4. 183.159.251.128 ?1??????????2112123111?11132??1?11??????21211211 5. 183.159.251.129 1112???????????????????1111321a11??????????????? 6. 115.233.18.25 ??2???2???1a???1??212??????2??1?????11????????? 7. 202.97.101.146 ??????????2?2??????2???2??222????????????2??2?? 8. 61.155.228.138 3???????3?2???????????????????333????3??33????3 9. 58.217.249.94 ??????????????333333?????3333333333333333333333 10. public1.114dns.com 222223222222222222222??222222223a32222222222222 Scale: .:3 ms 1:9 ms 2:18 ms 3:32 ms a:49 ms b:70 ms c:95 ms |
5
zhouscloud 311 天前
@AoEiuV020JP 毕竟也是大学时写的脚本, 有些东西当时也没考虑周全.
当时只是想了解具体的断点时间和断点时长, 对于日志方面的问题并没有太关注. 不过, 看到您提出的优化方式, 确实是个不错的点子. |
6
1423 311 天前
https://github.com/syepes/network_exporter
prometheus + grafana |
7
zx900930 311 天前
uptime kuma
|
8
Les1ie 311 天前
巧了,之前我这也是网络三天两头崩,整得我头疼,就用 ping_exporter(github 上找的) + prometheus + grafana 瞎整了一个统计,每隔 5 秒钟发一个 icmp 。
![https://i.imgur.com/a/pxTBzKg]( https://i.imgur.com/a/pxTBzKg) 如果网络崩了,可以用 grafana 的 altering 功能( prometheus 也能干这事)给我发个通知。后来发现我的场景似乎不需要发通知的功能,因为那段时间网络 24x7 一直是崩的状态 :( 如果有需要的话,我可以看看怎样把这套配置传到 github 去,其实很简单,半小时就能搞定。 |
10
Les1ie 310 天前
|
11
err1y 308 天前 via iPhone
|
12
CSGO OP @err1y 这个的话,应该添加什么能比较直观感受网络?
“组 HTTP ( S ) TCP Port Ping HTTP ( s ) - 关键字 HTTP ( s )- JSON 查询 gRPC ( s )- 关键字 DNS Docker 容器 HTTP ( s ) - Browser Engine ( Chrome/Chromium ) ( Beta ) 被动监控类型 Push 特殊监控类型 Steam 游戏服务器 GameDig MQTT Kafka Producer Microsoft SQL Server PostgreSQL MySQL/MariaDB MongoDB Radius Redis” |