Script que abre a página da Web e registra-a como tarefa cron

2

Eu preciso e preciso criar um script que use o endereço da página da Web e o tempo em segundos como argumentos. Ele registra tudo o que é exibido na página da web, ou seja, conteúdo JavaScript e HTML (o Flash não é obrigatório). O script será executado de forma não interativa como um trabalho cron. Outras restrições são que ele não pode iniciar um gerenciador de login ou seqüestrar um servidor X já em execução. Também não pode assumir que um login gerente está instalado ou que tipo de adaptador gráfico está embutido no servidor. Essa semi-solução é o que eu criei até agora, mas não é boa por causa do Xserver e porque ela precisa ser executada como um cron job. Também precisa ser executado no Ubuntu ou Debian mais recente!

Se você tiver outras soluções alternativas ou sugestões, basta dizer! :)

if [ $# -ne 3 ]then
echo "Arguments missing!";
echo "Entered  : $0 $1 $2 $3 (out of $# vars)";
echo "Should be: $0 http://feri.uni-mb.si/ 60s i_stare_at_websites_everyday.ogv";
exit
fi

#continued...
URL=$1;
TIME=$2;
OUTFILE=$3;

echo "++ Using URL: $URL";
echo "++ Capturing browser window for $TIME seconds";

# chromium is used as a better workaround for firefox's safe mode PITA browser.jar settings unpack+set+pack bug
#firefox $1 &
chromium-browser --disable-translate --app=$URL --user-data-dir /tmp &
browserPID=$!
#sleep for 4 secodns = loading firefox + webpage loading time 2+2?
#recordmydesktop has a delay argument which doesn't work.
#we need to sleep the execution old school way.
sleep 4s

unset xC yC wC hC
  eval $(xwininfo -id $(xdotool getactivewindow) |
    sed -n -e "s/^ \+Absolute upper-left X: \+\([0-9]\+\).*/xC=/p" \
           -e "s/^ \+Absolute upper-left Y: \+\([0-9]\+\).*/yC=/p" \
           -e "s/^ \+Width: \+\([0-9]\+\).*/wC=/p" \
           -e "s/^ \+Height: \+\([0-9]\+\).*/hC=/p" )

echo "Starting capture...";
recordmydesktop -x=$xC -y=$yC --width=$wC --height=$hC -o $OUTFILE 2&> /tmp/record_script_log &
# 2&> /tmp/recording_script.log &
recorderPID=$!
echo "++ Firefox Process ID: $firefoxPID, RCD ID: $recorderPID, Recording for: $TIME";
sleep $TIME
echo "++ All done! Cleaning up..."
echo "++ File saved as $OUTFILE";
# shut down "record my desktop" nicely
kill $recorderPID
kill -9 $browserPID
    
por Nooich 14.03.2013 / 13:59

1 resposta

1

Use wget . Ele deve ser instalado em seu sistema porque é uma dependência do pacote ubuntu-standard . Caso contrário, instale-o com apt-get install wget .

    
por zwets 14.03.2013 / 15:02