Lou*_*Kur 34 linux unix date command-line watch
我是 linux 的新手,我正在尝试查看命令并尝试将其登录到文件中。我试过
watch -t -n 10 "(date '+TIME:%H:%M:%S' ; ps aux | grep "pattern" | wc -l)" >> 日志文件
我期待这样的结果
TIME: 10:32:30 12
TIME: 10:32:40 18
TIME: 10:32:50 2
Run Code Online (Sandbox Code Playgroud)
存储在日志文件中。但是,当日志文件中有不可打印的字符时,我如何从命令 li 中获得这种输出
Kas*_*ghe 48
这也可以很容易地完成,watch而无需使用任何脚本。
watch -t -n 10 "(date '+TIME:%H:%M:%S' ; ps aux | grep "pattern" | wc -l) | tee -a logfile"
Kir*_*irk 28
为了做你正在寻找的事情,一个简单的脚本(如@Ignacio 指出的)应该可以解决问题:
while true
do
echo "$(date '+TIME:%H:%M:%S') $(ps aux | grep "pattern" | wc -l)" | tee -a logfile
sleep 2
done
Run Code Online (Sandbox Code Playgroud)
我使用tee代替,>>以便您可以在终端上看到输出并在日志中捕获它。
Ign*_*ams 10
watch用于输出到显示器。如果您只是想每 X 秒运行一次命令,那么您应该为此使用延迟循环。
while true ; do somecommand ; sleep 2 ; done
Run Code Online (Sandbox Code Playgroud)
watch 是一个 ncurses 程序,旨在在控制台窗口中运行(未重定向),这就是为什么它会创建一堆不可打印的字符(这些是管理和移动光标以重绘屏幕的控制字符)。
您可以尝试将 date / grep 命令移动到脚本中,然后从 cronjob 调用该脚本。
| 归档时间: |
|
| 查看次数: |
58634 次 |
| 最近记录: |