Linux 如何在fedora系统中每小时运行一个perl脚本。我有一个perl脚本,它将检查IP中的端口是否打开
我有一个perl脚本,它将检查IP中的端口是否打开。我希望这个脚本在linux系统中每小时运行一次。请提供建议。代码如下所示Linux 如何在fedora系统中每小时运行一个perl脚本。我有一个perl脚本,它将检查IP中的端口是否打开,linux,perl,crontab,Linux,Perl,Crontab,我有一个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"
#!/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;
}
这就是为什么
您可以使用命令crontab-e
创建一个cronjob。cron作业是关于运行特定作业的频率以及要运行的命令或shell脚本的规范
例如,要每小时运行一次Perl脚本:
0 * * * * /usr/home/foo/perscript.pl
前五列是时间规范(参见crontab手册第5节:man crontab-s5
)。但是,cron依赖于一个守护进程
,该守护进程每分钟启动crontab任务,以检查各种crontab表(因为每个用户都可以有一个),查看是否有任何任务要运行。还有一个许可方案,允许一些人运行cron作业,而拒绝其他人运行cron作业
在一个答案中通读整个crontab设置有点难——特别是因为不同的系统之间有一些细微的变化。不过,现在您已经了解了crontab,可以使用谷歌搜索了 您可以使用cron(用于调度事情的系统内置功能)或包含
use Proc::Daemon;
库来设置脚本作为守护进程工作
并指明
Proc::Daemon::Init;
您可以启用脚本的此守护程序功能。访问控制认为这可能有点乏味,因此我建议您在新的“服务”中添加一个控制脚本,如下所示:
(我再说一遍,cron方法更方便,这样您就可以运行自己的服务了)
您应该请求管理员创建cron作业的权限,或者允许管理员创建此作业。 每小时运行的cron作业具有以下规范:
3 * * * * absolute_path/your_program_name optional_parameters optional_redirections
在本例中,cron作业将在第3分钟每小时启动一次。
如果一台机器有许多cron作业,我建议您避免在第0分钟或第30分钟启动cron作业,因为预期会过载。实际上,大多数人都没有听说还有多少分钟 使用cron如何在fedora 12中使用cronjobs恐怕没有简单的方法来做一些自己的研究,包括阅读一些优秀的手册。这是不对的。具有此类规范*0-24***的cron作业将每分钟运行一次,而不是每小时运行一次。
3 * * * * absolute_path/your_program_name optional_parameters optional_redirections