Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2012-10-18 22:23:09

  wi3z - Użytkownik

wi3z
Użytkownik
Zarejestrowany: 2010-09-24

Zapis strony internetowej co godzinę

Witam serdecznie,
chciałbym zapisywać co godzinę zawartość pewnej strony do pliku.
Znalazłem już w sieci podobny problem, który został opisany :

#!/bin/bash
date=`date +%Y-%m-%d__%H_%M_%S`;
wget http://twojastrona.com/page.html -O /home/bak/$date.html

http://twojastrona.com/page.html - To zamienisz na adres twojej strony
/home/bak/ - gdzie zachowywać dane


Nie zapomnij zmienić prawo pliku (chmod +x bak.sh)
bak.sh - to twój przed chwilą stworzony skrypt

I dalej z polecenia crona wykonujesz go każdych 15 minut

*/15 * * * * /home/bak/bak.sh

Niestety coś mi to nie chce działać. Niby cron przyjmuje polecenie, skrypt zapisany.
Po prostu nic się nie zapisuje.
Pozdrawiam

Offline

 

#2  2012-10-19 09:19:34

  ba10 - Członek DUG

ba10
Członek DUG
Skąd: jesteś ?
Zarejestrowany: 2006-03-07
Serwis

Re: Zapis strony internetowej co godzinę

wi3z napisał(-a):

date=`date +%Y-%m-%d__%H_%M_%S`;
wget http://twojastrona.com/page.html -O /home/bak/$date.html

Czy jak ręcznie w powłoce wpisujesz kolejne linie skryptu to także nie działa ?

Ostatnio edytowany przez ba10 (2012-10-19 09:25:26)


"Jeżeli chcesz się nauczyć Linuksa, to pierwsze co musisz zrobić to odrzucić wszelkie przyzwyczajenia wyniesione z poprzedniego systemu. Twoja wiedza jest o tyle zgubna, że daje Ci poczucie że coś jednak wiesz — jednak w kontekście Linuksa prawdopodobnie nie wiesz jeszcze nic." Minio
Mój Blog, a później Tańczymy ;)

Offline

 

#3  2012-10-19 14:43:08

  wi3z - Użytkownik

wi3z
Użytkownik
Zarejestrowany: 2010-09-24

Re: Zapis strony internetowej co godzinę

Dla przykładu wget http://twojastrona.com/page.html -O /home/bak/index.html wykonuje się bez problemu.
Mówię tutaj o ręcznym wpisaniu do linii poleceń.

Offline

 

#4  2012-10-19 15:53:14

  ba10 - Członek DUG

ba10
Członek DUG
Skąd: jesteś ?
Zarejestrowany: 2006-03-07
Serwis

Re: Zapis strony internetowej co godzinę

Pokaż wynik polecenia

Kod:

crontab -l

Wykonujesz  to dla użytkownika czy dla roota ?
I druga sprawa, że chciałem dokładnie byś wykonał dwie linie ze skryptu.

wi3z napisał(-a):

date=`date +%Y-%m-%d__%H_%M_%S`;
wget http://twojastrona.com/page.html -O /home/bak/$date.html

Choć może także dobrze by było byś wlepił ten skrypt, który chcesz wykonać, bo może jakaś literówka jest lub coś w tym stylu.
No i oczywiście skrypt ma odpowiednie uprawnienia do wykonania ?

Ostatnio edytowany przez ba10 (2012-10-19 15:58:43)


"Jeżeli chcesz się nauczyć Linuksa, to pierwsze co musisz zrobić to odrzucić wszelkie przyzwyczajenia wyniesione z poprzedniego systemu. Twoja wiedza jest o tyle zgubna, że daje Ci poczucie że coś jednak wiesz — jednak w kontekście Linuksa prawdopodobnie nie wiesz jeszcze nic." Minio
Mój Blog, a później Tańczymy ;)

Offline

 

#5  2012-10-19 17:25:42

  djjanek - Użytkownik

djjanek
Użytkownik
Skąd: whereis
Zarejestrowany: 2007-11-15
Serwis

Re: Zapis strony internetowej co godzinę

A takie coś:


Kod:

#!/bin/bash
date=`date +%Y-%m-%d__%H_%M_%S`;
wget http://twojastrona.com/page.html -O /home/bak/${date}.html

EDIT:

dodatkowo podczas uruchamiania czegoś z cron polecam mieć dobrze skonfigurowane email, lub przejrzeć emaile z tego uzytkownika z jakiego wykonuje cron, lub przeglądać logi online

Kod:

tail -f /var/log/syslog

Ostatnio edytowany przez djjanek (2012-10-19 17:28:33)

Offline

 

#6  2012-10-19 17:53:41

  fervi - Użytkownik

fervi
Użytkownik
Zarejestrowany: 2010-03-14

Re: Zapis strony internetowej co godzinę

Kod:

sleep 1h

Usypia konsolę na 1h, a potem co ma zrobić, a na końcu ./$0 (jeśli się nie mylę), który uruchomi twój program jeszcze raz

Od biedy jak nerdy gadają, cron, cron, cron

Fervi

Offline

 

#7  2012-10-20 09:54:19

  Piotr3ks - Też człowiek :-)

Piotr3ks
Też człowiek :-)
Zarejestrowany: 2007-06-24

Re: Zapis strony internetowej co godzinę

Zamiast

Kod:

*/15 * * * * /home/bak/bak.sh

Spróbowałbym

Kod:

*/15 * * * * /bin/bash /home/bak/bak.sh

@fervi:
Co jest złego w cronie? Sleep 1h nie uśpi konsoli jak skrypt uruchomi się w tle.

@wi3z:
A jak ręcznie wywołasz skrypt to działa ?

Ostatnio edytowany przez Piotr3ks (2012-10-20 09:55:23)

Offline

 

#8  2012-10-21 14:44:23

  wi3z - Użytkownik

wi3z
Użytkownik
Zarejestrowany: 2010-09-24

Re: Zapis strony internetowej co godzinę

Wszystkim dziękuję za pomoc. Jak się okazało przykłady, które podałem w pierwszym poście funkcjonują.
Problem leżał w tym, że próbowałem wykonać to na shellu. Widocznie coś tam nie grało.
Na domowym serwerze wszystko ruszyło i działa wyśmienicie. ;)

Powiedzie mi tylko, czy jest możliwość, aby skrypt nie zapisywał całej strony a tylko kolejne linie kodu?

Offline

 

#9  2012-10-21 15:43:06

  djjanek - Użytkownik

djjanek
Użytkownik
Skąd: whereis
Zarejestrowany: 2007-11-15
Serwis

Re: Zapis strony internetowej co godzinę

Jeśli położysz serwer PHP, ASP ... lub znajdziesz jakiś bug to tak.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)