我的脚本每分钟读取一次日志文件,并选择(并作用于)时间戳开始于前一分钟的行.
这很简单(正则表达式只是"^ $ timestamp"),但是当日志变大时,可能需要一段时间.
我的想法是我想要的线总是靠近文件的底部,所以如果我从底部开始向上搜索,我会搜索更少的线,当我到达我之前的那一刻时停止有兴趣.
我的问题是,如何从文件底部而不是顶部进行搜索?我甚至可以说"读取行$ length",甚至"读取行n"(如果是这样的话,我可以做一种二进制搜索的东西来找到文件的长度并从那里向后工作)?
最后一个问题:这会更快(我还是想知道如何做到这一点,即使它不会更快)?
理想情况下,我想在我自己的代码中完成所有操作,而无需安装任何额外的东西.
谢谢
我正在尝试设置一个脚本,当某个字符串出现在日志文件中时会生成警报.
已经存在的解决方案每分钟刷一次整个日志文件并计算字符串出现的频率,使用日志行的时间戳仅计算前一分钟中的出现次数.
我认为用尾巴做这个会更有效率,所以我尝试了下面的测试:
FILENAME="/var/log/file.log"
tail -f $FILENAME | awk -F , -v var="$HOSTNAME" '
BEGIN {
failed_count=0;
}
/account failure reason/ {
failed_count++;
}
END {
printf("%saccount failure reason (Errors per Interval)=%d\n", var, failed_count);
}
'
Run Code Online (Sandbox Code Playgroud)
但这只是挂起而不输出任何东西.有人建议这个小改动:
FILENAME="/var/log/file.log"
awk -F , -v var="$HOSTNAME" '
BEGIN {
failed_count=0;
}
/account failure reason/ {
failed_count++;
}
END {
printf("%saccount failure reason (Errors per Interval)=%d\n", var, failed_count);
}
' <(tail -f $FILENAME)
Run Code Online (Sandbox Code Playgroud)
但这也是一样的.
我正在使用的awk(我在上面的代码中进行了简化)可以工作,因为它在现有脚本中使用,其中grep"^ $ TIMESTAMP"的结果通过管道输入.
我的问题是,如何让尾部-f与awk一起工作?
你知道如何在Reminders中列表的名称看起来不像文本字段,它看起来像一个标签(在我看来这让它变得混乱,但没关系),但你可以编辑它吗?
我想在我的应用程序中做同样的事情 - 要么有可以编辑的标签,要么看起来像标签的文本字段.是否有这样做的功能,或者你需要做一些事情,触摸标签使文本字段出现,以后消失(并更新标签文本)?
顺便说一下,不要担心,我的应用程序和提醒中的内容不会一样令人困惑.
所以,我的JDBC驱动程序说:
"此驱动程序不支持SQL Server版本8."
但是SQL Server版本8到底是什么?所有我能找到的引用都是年份数字,设置数据库的人不在我身边.有任何想法吗?
我使用Xcode中的模板创建了一个主细节应用程序.当我做了Apple ToDoList教程,你开始使用一个普通的应用程序并自己添加第二个视图我添加了加号和完成按钮,但是这个模板似乎自动包含它们,除了我在界面构建器中看不到它们,当我运行应用程序时.我不想在左上角有一个"编辑"按钮(虽然我希望用户能够滑动以删除项目).
所以,我的问题是双重的:
http://www.mazz0.com/images/xcode/masterdetaileditbutton/storyboard.png http://www.mazz0.com/images/xcode/masterdetaileditbutton/app.png
我使用的是 python 2,下面的代码只是使用了一些示例数据,我的实际数据可能有不同的长度,可能不是很详细。
import numpy as np
import datetime
import matplotlib
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
x_values = [datetime.datetime(2018, 11, 8, 11, 16),
datetime.datetime(2018, 11, 8, 11, 17),
datetime.datetime(2018, 11, 8, 11, 18),
datetime.datetime(2018, 11, 8, 11, 19),
datetime.datetime(2018, 11, 8, 11, 20),
datetime.datetime(2018, 11, 8, 11, 21),
datetime.datetime(2018, 11, 8, 11, 22),
datetime.datetime(2018, 11, 8, 11, 23),
datetime.datetime(2018, 11, 8, 11, 24),
datetime.datetime(2018, 11, 8, 11, 25),
datetime.datetime(2018, 11, 8, 11, 26),
datetime.datetime(2018, 11, 8, 11, …Run Code Online (Sandbox Code Playgroud) 我已经声明了一个名为Squad的属性,但是当我发送[self getSquad]时,我得到"没有可见的@interface for SquadViewController声明选择器'getSquad'".
SquadViewController.h:
#import "FlipsideViewController.h"
#import "Squad.h"
@interface SquadViewController : UIViewController <FlipsideViewControllerDelegate, UIPopoverControllerDelegate>
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (strong, nonatomic) UIPopoverController *flipsidePopoverController;
@property (nonatomic, retain) IBOutlet UILabel *squadNameLabel;
@property Squad *squad;
- (IBAction)updateTitleWithName:(id)sender;
@end
Run Code Online (Sandbox Code Playgroud)
SquadViewController.m:
#import "SquadViewController.h"
@interface SquadViewController ()
@end
@implementation SquadViewController
@synthesize squadNameLabel;
@synthesize squad;
...
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
if (![self getSquad]) //<--THIS IS WHERE THE ERROR IS
{
[self …Run Code Online (Sandbox Code Playgroud) ios ×2
objective-c ×2
awk ×1
iphone ×1
matplotlib ×1
powershell ×1
scripting ×1
sql-server ×1
tail ×1
uilabel ×1
uistoryboard ×1
uitableview ×1
uitextfield ×1