在文件名perl中包含变量

时间:2014-09-03 11:04:10

标签: perl variables filenames

我试图创建一个搜索日志文件中特定错误的脚本。日志文件是日期戳,所以我想检查今天的日志文件。这将最终成为一个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"
}

非常感谢任何建议!

3 个答案:

答案 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