你好。 使用我的服务器记录几天内偶尔发生的网络 DC。四处查看并收集代码并使其工作,我通过 cronjob 启动它以每天获取一个文本文件。
该程序:
#!/bin/bash
## Get current date ##
_now=$(date +"%d_%m_%Y")
## Appending a current date from a $_now to a filename stored in $_file ##
_file="/path/to/file/pinglogger_$_now.txt"
## fping 24h with timestamp to a file with todays date ##
fping -c 86000 -s google.com 192.168.250.1 | while read pong; do echo "$(date): $pong"; done > "$_file" 2>&1
问题:
这是有效的,但是程序结束时我没有得到最后几行 ping 统计信息。当我发现并向| while read pong; do echo "$(date): $pong"; done
程序中添加在 ping 上添加时间戳时,问题就开始了。
灵魂: 经过提示和技巧后,最终代码如下,它将 stout 和 sterr 写入输出文件:对本地主机和 Google 执行约 1 天的 ping 操作,并将结果发送到包含今天日期的文件:
#!/bin/bash
## Get current date ##
_now=$(date +"%d_%m_%Y")
## Appending a current date from a $_now to a filename stored in $_file ##
_file="/path to file/pinglogger_$_now.txt"
## fping 24h with timestamp to a file with todays date ##
(fping -c 86000 -s google.com 192.168.250.1 | ts) &> "$_file"
答案1
使用 TS 将其缩短并将代码放入 () 管道机器人 sterr 和 stout 中以归档工作。
(fping -c 86000 -s google.com 192.168.250.1 | ts) &> "$_file"