请问一下各位,我想让Linux日志重新打开时恢复到上次关闭的位置,怎么才能使用shell脚本实现、
2条回答 默认 最新
- qq_37749055 2023-09-04 11:37关注
要让Linux日志在重新打开时恢复到上次关闭的位置,您可以使用以下shell脚本:
#!/bin/bash log_file="/path/to/logfile.log" if [ -f "$log_file" ]; then # 获取日志文件的最后几行,以获取文件关闭的位置 last_lines=$(tail -n 10 "$log_file") # 截取日志文件关闭时的最后一行 last_line=$(echo "$last_lines" | tail -n 1) # 提取日志关闭时的行号 line_number=$(echo "$last_line" | awk '{print $1}') # 重新打开日志文件,并将文件指针移动到最后一行的下一行 exec 3<> "$log_file" seek=$((line_number + 1)) dd iflag=skip_bytes oflag=seek_bytes obs=1 of=/dev/null count=$seek bs=1 skip=$line_number 3<<EOF EOF exec 3>&- else echo "日志文件不存在" fi
请确保将
/path/to/logfile.log
替换为您实际的日志文件路径。该脚本首先检查日志文件是否存在,然后使用tail
命令获取文件的最后几行以找到文件关闭的位置。然后,它使用exec
命令将文件描述符3重定向到日志文件,并使用dd
命令将文件指针移动到上次关闭位置的下一行。最后,它关闭文件描述符3。请注意,此脚本假定日志文件以数字行号开头,例如:
1 This is line 1 2 This is line 2 3 This is line 3
如果您的日志文件格式与此不同,可能需要根据实际情况进行调整。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
- ¥45 求17位带符号原码乘法器verilog代码
- ¥20 PySide6扩展QLable实现Word一样的图片裁剪框
- ¥15 手游上号器是如何获取到游戏在微信平台的appid
- ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
- ¥15 怎么看我在bios每次修改的日志
- ¥15 python+mysql图书管理系统
- ¥15 Questasim Error: (vcom-13)
- ¥15 船舶旋回实验matlab
- ¥30 SQL 数组,游标,递归覆盖原值