我试图创建一个搜索日志文件中特定错误的脚本。日志文件是日期戳,所以我想检查今天的日志文件。这将最终成为一个cronjob。当我跑这个。我目前收到以下错误:
tail:无法打开`/var/log/file.2014-09-03-Wed\n.log'阅读:没有 这样的文件或目录
所以我得到了约会,但是之后又添加了一个\ n。下面的脚本:
$date=`date +"%Y-%m-%d-%a"`;
$string = `tail -n50 /var/log/"file.$date.log" | grep -B2 'Too many connected clients'`;
if($string =~ m/Reply: 421 Service not available. There are too many connected users, please try later/){
print "Max connections reached $date"
}
非常感谢任何建议!
答案 0 :(得分:1)
尝试使用chomp($data)
或$date =~s/\n//;
答案 1 :(得分:1)
从\n
:
$date
chomp($date);
答案 2 :(得分:1)
使用Time::Piece
模块获取格式化的日期和时间,而不是启动整个其他过程来执行此操作。它是Perl 5版本10以来的核心模块,因此除非你的Perl非常老旧,否则不需要安装。
看起来像这样
use Time::Piece;
my $date = localtime->strftime('%Y-%m-%d-%a');
print $date, "\n";
<强>输出强>
2014-09-03-Wed