Скрипт perl проверка очереди через crontab

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
rubylnik
рядовой
Сообщения: 48
Зарегистрирован: 2013-11-02 12:57:14

Скрипт perl проверка очереди через crontab

Непрочитанное сообщение rubylnik » 2014-01-28 10:48:06

Суть проблемы такова, при выполнении из cron-a данный полученные при помощи команды mailq или postqueu -p не хочет копироваться в файл.
Помогите разобраться в чем проблема.

Код: Выделить всё

#!/usr/bin/perl

use DBI;
use POSIX qw(strftime);

############# the number of messages in queue ##############
system ("mailq | grep 'Requests.' > /home/karpoveg/test_prog/123txt");
system ("mailq >123txt");
open(LOGFILE, "/home/karpoveg/test_prog/123txt");
@logbuffer = <LOGFILE>;
close(LOGFILE) || die "Error closing local log file: $!";
system ("rm 123txt");
print $formatted;
foreach my $line (@logbuffer)
{
    if ($line =~  m/in (\d*) Requests./g)
        {
        $asd=$1;
        }
}
print "\n$asd\n";
############## Cheking the number of leters ##################################
if ($asd > 15)
{
    open( LOGFILE1, "<data");
    @logbuffer1 = <LOGFILE1>;
    close(LOGFILE1) || die "Error closing local log file: $!";
    foreach my $line1 (@logbuffer1)
    {
        if ($line1 =~  m/(\d*)/g)
        {
        $qwe=$1;
        }
    }
    if( $qwe>0)
        {
        $qwe++;
        $res="num $qwe";
        system("echo $qwe >data");
        }
    else
        {
        $res="first";
        system("echo 1 >data");
        }
}
else
    {
    $res="ok";
    system("echo 0 >data");
    }
############# Date Time ###################
my $today = time;
my $formatted = strftime "%b-%e-%H:%M", ( localtime($today) );
############## Collecting statistics in the database ###############
#$dbh = DBI->connect('DBI:mysql:maillogs:127.0.0.1',*****','*****'');
#$query="INSERT INTO mailq VALUE ('$asd','$formatted','$res')";
#$sth = $dbh->prepare($query);
#$sth->execute;
#$rc = $sth->finish;    
#$rc = $dbh->disconnect; 

В cron указано запуск через 5 минут от root
*/5 * * * * root /home/123.pl (пример)
Срабатывания происходят.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: Скрипт perl проверка очереди через crontab

Непрочитанное сообщение FreeBSP » 2014-01-28 11:22:39

Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

lazhu
сержант
Сообщения: 209
Зарегистрирован: 2013-08-10 14:28:38
Контактная информация:

Re: Скрипт perl проверка очереди через crontab

Непрочитанное сообщение lazhu » 2014-01-28 11:59:55

Если из шелла скрипт работает, а из крона нет - 99.99% проблема в путях.
Смотрите строчку PATH в кронтабе

rubylnik
рядовой
Сообщения: 48
Зарегистрирован: 2013-11-02 12:57:14

Re: Скрипт perl проверка очереди через crontab

Непрочитанное сообщение rubylnik » 2014-01-28 14:57:14

Да , действительно, не знал. Благодарю. :good: