Cronjob Bash não exportando

1

Eu escrevi o script a seguir para ser executado quando os usuários tiverem feito o login pela última vez. Estou tentando exportar um cronjob para um arquivo .out. Por algum motivo, não consigo exportá-lo.

#!/bin/bash
for User in $(cd /home;ls --hide=lost+found); do
echo "$User online since:"
who | awk '{ print "\tUser: "$1" - Terminal: "$2" - "$3" "$4}'
NOW=$(date +%s -d "Jan 1, 1980 00:00:01")
USR=$(lastlog |awk ' {print $1, ":",$5,$6,$9 } ' | grep $User)
USRDATE=$(echo $USR | cut -d ":" -f2)
(( USRDATE = $(date --date "$USRDATE" +%s) / 86400 ))
(( NOW = NOW/86400 ))
(( DAYS = NOW - USRDATE ))
done
FILE="/home/Mike/watchuser"
OUTPUTFILE="/tmp/watchuser.out"
if [ "$1" == 'out' ]
then
FILE = $OUTPUTFILE
fi
done

Eu acredito que o bash foi movido para o diretório correto / home / Mike / watchuser.

[root@ip-10-245-82-234 ec2-user]# ls -l /home/Mike/watchuser                      
-rwxr--r--. 1 Mike student 564 Oct  3 20:50 /home/Mike/watchuser

Além disso, quando ls -l da pasta / tmp /, eu reencontro o seguinte:

[root@ip-10-245-82-234 ec2-user]# ls -l /tmp/                                     
total 4
-rw-------. 1 Mike Mike 34 Dec 31  1969 crontab.RJIkgB
-rw-r--r--. 1 root root  0 Oct  3 21:57 watchuser.out

aqui está minha edição do / etc / crontab:     * / 10 * * * * Mike / home / Mike / watchuser > > /tmp/watchuser.out

    
por Macenbro 04.10.2013 / 15:53

1 resposta

2

Sim, claro. Porque você tem alguns erros.

Em primeiro lugar, seu script deve ser parecido com:

#!/bin/bash
for User in $(cd /home;ls --hide=lost+found); do
echo "$User online since:"
who | awk '{ print "\tUser: "$1" - Terminal: "$2" - "$3" "$4}'
NOW=$(date +%s -d "Jan 1, 1980 00:00:01")
USR=$(lastlog |awk ' {print $1, ":",$5,$6,$9 } ' | grep $User)
USRDATE=$(echo $USR | cut -d ":" -f2)
(( USRDATE = $(date --date "$USRDATE" +%s) / 86400 ))
(( NOW = NOW/86400 ))
(( DAYS = NOW - USRDATE ))
done
FILE="/home/radu/watchuser"
OUTPUTFILE="/tmp/watchuser.out"
if [ "$1" == 'out' ]
then
FILE=$OUTPUTFILE  # you had an error here
fi                # and another one error here

E, em segundo lugar, edite as entradas do crontab usando o comando crontab -e (por padrão, isso irá editar o crontab atual dos usuários logados) e adicione a seguinte linha:

*/10 * * * * /home/Mike/watchuser >> /tmp/watchuser.out

... Ele não precisa seu nome na frente do caminho para o script.

Mais sobre: link

    
por Radu Rădeanu 04.10.2013 / 16:31