我有一个 perl 脚本,它将检查 IP 中的端口是否打开。我希望这个脚本在 Linux 系统中每小时运行一次。请告知。代码如下
#!/usr/bin/perl
use DBI;
use strict;
use warnings;
my $dsn = 'dbi:mysql:dbname:localhost:3306';
my $dbh = DBI->connect('dbi:mysql:dbname:localhost:3306',"root7","pass");
if(!$dbh)
{
print "Not Connnected";
}
else
{
print "Connnected";
my @temp;
my $tmp=time();
my @timeData = localtime(time);
$temp[0] = $timeData[2].":".$timeData[1].":".$timeData[0];
$temp[1] = $timeData[3]."-".($timeData[4]+1)."-".($timeData[5]+1900);
my $filename = 'log_c.txt';
open(my $fh, '>', $filename) or die "Could not open file '$filename' $!";
print $fh "date:$temp[1]: Time:$temp[0]\n";
close $fh;
#print "done\n"
undef @timeData;
undef $tmp;
undef @temp;
}
最佳答案
这就是 cron是为了。
使用命令 crontab -e
创建一个 cronjob。 cron 作业是关于运行特定作业的频率以及要运行的命令或 shell 脚本的规范。
例如,每小时运行一次 Perl 脚本:
0 * * * * /usr/home/foo/perscript.pl
前五列是时间规范(请参阅 crontab 手册页第 5 节:man crontab -s5
)。然而,cron 依赖于每分钟启动 crontab 任务的守护进程来检查各种 crontab 表(因为每个用户都可以有一个)以查看是否有任何任务要运行。还有一个权限方案,其中一些人允许而其他人拒绝运行 cron 作业。
在一个答案中遍历整个 crontab 设置有点麻烦——特别是因为不同系统之间存在细微的差异。不过,现在您了解了 crontab,您可以 Google the information you need 。
关于linux - 如何在 Fedora 系统中每小时运行一个 Perl 脚本。我有一个 perl 脚本,它将检查 IP 中的端口是否打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21495348/