Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Alex Ivanov                          2:5020/400     24 Jun 2005  13:50:40
 To : All
 Subject : скрипт и crontab
 -------------------------------------------------------------------------------- 
 
 Hi All.
 
 Возникла глупейшая проблема - не могу запустить скрипт из crontab
 есть такая строчка в crontab:
 */5     *       *       *       *       root    /root/ipfw/ipfw_traffdump.sh
 
 Т.е запускать скрипт каждые пять минут.
 Cron в лог пишет каждые 5ть минут:
 Jun 24 13:35:00 omzgate1 /usr/sbin/cron[33823]: (root) CMD
 (/root/ipfw/ipfw_traffdump.sh)
 Т.е. скрипт запускает.
 Из консоли скрипт прекрасно работает, права на нем правильные, все ОК.
 
 Hо вот засада, при запуске из консоли скрипт отрабатывает _абсолютно_
 корректно (тестировал под рутом из под /bin/sh), а при запуске из cron - не
 хочет писать в базу.
 Для теста в сам скрипт засунул строку:
 
 date >> /tmp/td.log
 
 Чтоб выводил дату своего запуска в лог, в нем все ок, т.е. скрипт запускается,
 но сам почему-то ничего в базу ничего не пишет.
 Отсюда вопрос - чем отличается запуск скрипта из cron от запуска из консоли
 (ну кроме shell)?
 
 Вот собственно сам скрипт:
 [root@gate1.xxx.com]/home/orm> ll /root/ipfw/ipfw_traffdump.sh    
 -rwx------  1 root  wheel  - 2332 Jun 24 13:21 /root/ipfw/ipfw_traffdump.sh
 [root@gate1.xxx.com]/home/orm> cat /root/ipfw/ipfw_traffdump.sh 
 #!/bin/sh
 fwcmd="/sbin/ipfw"
 
 . /root/ipfw/ipfw_pipe_numbers.sh
 
 date >> /tmp/td.log
 
 #================ Inbound traffic
 
 if [ -r /var/run/pipe.${in_pipe} ]; then
         echo LOCK TABLES ${in_table} WRITE\; \
                 ALTER TABLE ${in_table} DISABLE KEYS\; | ${mysqlcmd}
         ${fwcmd} pipe ${in_pipe} show |\
                 tail -n +4 |\
                 awk " { print \$3, \$4, \$6 } "|\
                 awk -F[/\.\t\ ] " { print \$11, \$1, \$2, \$3, \$4, \$6, \$7,
 \$8, \$9, \$5 } "|\
 #               sort -r -n |\
                 awk " { print ( \" INSERT INTO ${in_table} (
 bytes,source_ip_1,source_ip_2,source_ip_3,source_ip_4,destination_ip_1,destinat
 ion_ip_2,destination_ip_3,destination_ip_4,source_port ) VALUES ( \", \$1, \"
 , \", \
 \$2, \" , \",\
 \$3, \" , \",\
 \$4, \" , \",\
 \$5, \" , \",\
 \$6, \" , \",\
 \$7, \" , \",\
 \$8, \" , \",\
 \$9, \" , \",\
 \$10, \" ); \") } "|\
                 ${mysqlcmd}
         ${fwcmd} pipe ${in_pipe} delete && rm /var/run/pipe.${in_pipe}
         fi
 ${fwcmd} pipe ${in_pipe} config \
         mask src-ip 0xffffffff \
         dst-ip 0xffffffff \
         src-port 0xffff \
         dst-port 0x0000 \
         buckets 65536 && echo xxx > /var/run/pipe.${in_pipe}
 #=================== Outbound traffic
 
 if [ -r /var/run/pipe.${out_pipe} ]; then
         echo LOCK TABLES ${out_table} WRITE\; \
                 ALTER TABLE ${out_table} DISABLE KEYS\; | ${mysqlcmd}
         ${fwcmd} pipe ${out_pipe} show |\
                 tail -n +4 |\
                 awk " { print \$3, \$4, \$6 } "|\
                 awk -F[/\.\t\ ] " { print \$11, \$1, \$2, \$3, \$4, \$6, \$7,
 \$8, \$9, \$10 } "|\
 #               sort -r -n |\
                 awk " { print ( \" INSERT INTO ${out_table} (
 bytes,source_ip_1,source_ip_2,source_ip_3,source_ip_4,destination_ip_1,destinat
 ion_ip_2,destination_ip_3,destination_ip_4,destination_port ) VALUES ( \",
 \$1, \" , \", \
 \$2, \" , \",\
 \$3, \" , \",\
 \$4, \" , \",\
 \$5, \" , \",\
 \$6, \" , \",\
 \$7, \" , \",\
 \$8, \" , \",\
 \$9, \" , \",\
 \$10, \" ); \") } "|\
                 ${mysqlcmd}
         ${fwcmd} pipe ${out_pipe} delete && rm /var/run/pipe.${out_pipe}
         fi
 ${fwcmd} pipe ${out_pipe} config \
         mask src-ip 0xffffffff \
         dst-ip 0xffffffff \
         src-port 0x0000 \
         dst-port 0xffff \
         buckets 65536 && echo xxx > /var/run/pipe.${out_pipe}
 echo UNLOCK TABLES\; \
         ALTER TABLE ${in_table}  ENABLE KEYS\; \
         ALTER TABLE ${out_table} ENABLE KEYS\; | ${mysqlcmd}
 
 [root@gate1.xxx.com]/home/orm> cat /root/ipfw/ipfw_pipe_numbers.sh 
 #!/bin/sh
 export in_pipe="1"
 export in_table="inbound"
 export out_pipe="2"
 export out_table="outbound"
 export mysqlcmd="mysql traff"
 #export mysqlcmd="cat"
 [root@omzgate1.omzcrane.com]/home/orm> ll /root/ipfw/ipfw_pipe_numbers.sh  
 -rwx------  1 root  wheel  - 156 Jun 16 12:10 /root/ipfw/ipfw_pipe_numbers.sh
 
 --- ifmail v.2.15dev5.3
  * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 скрипт и crontab   Alex Ivanov   24 Jun 2005 13:50:40 
 Re: скрипт и crontab   Mykola Dzham   24 Jun 2005 14:40:16 
 Re: скрипт и crontab   Alex Ivanov   24 Jun 2005 16:08:06 
 скрипт и crontab   Ilya Kulagin   24 Jun 2005 15:30:07 
 скрипт и crontab   Alex Ivanov   24 Jun 2005 16:08:38 
 Re: скрипт и crontab   Vadim Goncharov   24 Jun 2005 16:30:16 
 скрипт и crontab   Andrey Ostanovsky   24 Jun 2005 16:15:42 
 скрипт и crontab   Alex Ivanov   24 Jun 2005 18:36:56 
 скрипт и crontab   Andrey Ostanovsky   27 Jun 2005 10:20:42 
 скрипт и crontab   Alex Ivanov   27 Jun 2005 12:37:19 
Архивное /ru.unix.bsd/1667923793165.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional