Script de varredura de rede - problemas de cronificação

0

Esta é (ainda) outra consulta sobre o cron. Eu me referi ao guia neste site antes de postar aqui, mas eu ainda Não consigo fazer este script funcionar. Ele é projetado para suspender o PC quando a atividade em determinadas portas de rede é interrompida. O script é executado conforme listado perfeitamente em um shell normal. Eu transferi as variáveis de ambiente para o crontab, conforme listado abaixo.

Desculpas se esta é uma pergunta óbvia, mas não consigo descobrir isso. Os guias que vi sugerem colocar variáveis de ambiente no crontab.

# set shell to bash
SHELL=/bin/bash
# copy PATH from bash
PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
# set up gt-netscan variables in here instead of /etc/environment
STDBY_ON=1
STDBY_CT=0
STDBY_LIM=5

01  *   *   *   *   /usr/local/include/gt-netscan

Aqui está o script:

#!/bin/bash

if [[ "STDBY_ON" -eq 1 ]]; then
    packets=0
    interface="eth0" #interface to listen on


    packets=$(timeout 5 sudo tcpdump -c 100 -n -i $interface port 22 | grep -c 192.168.7.4)

    if [[ "$packets" -eq 0 ]]; then
        let "STDBY_CT+=1"
        echo "No packets, loop $STDBY_CT count" >> /var/log/gt-netscan
    else
        let "STDBY_CT=0"
        echo "Loop reset: $packets packets detected" >> /var/log/gt-netscan
        echo $(date) >> /var/log/gt-netscan            
    fi

    if [[ "$STDBY_CT" -gt "$STDBY_LIM" ]]; then
        echo "Suspending, no activity for 20 minutes on $interface." >> /var/log/gt-netscan
        echo $(date) >> /var/log/gt-netscan
        let "STDBY_CT=0"            
        sudo pm-suspend
    fi

fi

exit

Qualquer ajuda será muito apreciada.

EDIT 1: conforme solicitado, aqui está a saída do var / log / syslog grepped para o nome do script (gt-netscan).

Jan 31 11:35:15 big-boss kernel: [    9.231242] init: gt-netscan main process (814) terminated with status 2
Jan 31 11:35:19 big-boss kernel: [   13.188657] init: gt-netscan main process (2718) terminated with status 2

EDIT 2: saída de 'stat / usr / local / include / gt-netscan'

File: '/usr/local/include/gt-netscan'
Size: 995           Blocks: 8          IO Block: 4096   regular file
Device: 811h/2065d  Inode: 664072      Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-01-31 12:01:01.979605807 +0000
Modify: 2015-01-27 23:32:07.027119674 +0000
Change: 2015-01-27 23:32:07.035119674 +0000
Birth: -
    
por goggyturk 31.01.2015 / 01:02

1 resposta

0

Parece que você não tem usuário no cron.

# m h dom mon dow user command

01 * * * * {insert user here} /usr/local/include/gt-netscan

    
por JD Schmidt 31.01.2015 / 01:22