Сценарий, который открывает веб-страницу и записывает ее как задание крона

Я нуждаюсь и имею для создания сценария, который берет адрес веб-страницы и время в секундах как аргументы. Это записывает то, что показывают на веб-странице - т.е. JavaScript и содержимое HTML (Flash, не требуемый). Сценарий будет выполненным нев интерактивном режиме как задание крона. Другие ограничения состоят в том, что это не может запустить менеджер входа в систему или угнать уже рабочий X-сервер. Также не может предположить, что менеджер по входу в систему установлен или какой графический адаптер встроен в сервер. Это полурешение - то, что я придумал до сих пор, но это не хорошо из-за Xserver и потому что это должно быть выполнено как задание крона. Также это должно быть выполнено на последней Ubuntu или Debian!

Если Вы имеете какие-либо другие обходные решения или предложения, просто говорите!:)

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=\1/p" \
           -e "s/^ \+Absolute upper-left Y: \+\([0-9]\+\).*/yC=\1/p" \
           -e "s/^ \+Width: \+\([0-9]\+\).*/wC=\1/p" \
           -e "s/^ \+Height: \+\([0-9]\+\).*/hC=\1/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
2
задан 18 March 2013 в 21:55

1 ответ

Используйте wget. Он должен быть установлен в вашей системе, потому что это зависимость от пакета ubuntu-standard. В противном случае установите его с помощью apt-get install wget.

0
ответ дан 18 March 2013 в 21:55

Другие вопросы по тегам:

Похожие вопросы: