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

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

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

[i]I dalej z polecenia crona wykonujesz go każdych 15 minut[/i]

*/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ę

[quote=wi3z]date=`date +%Y-%m-%d__%H_%M_%S`;
wget http://twojastrona.com/page.html -O /home/bak/$date.html[/quote]
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 [url=jarekw.eu]Blog[/url], a później [url=tanczymy.com]Tańczymy[/url] ;)

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.
[quote=wi3z]date=`date +%Y-%m-%d__%H_%M_%S`;
wget http://twojastrona.com/page.html -O /home/bak/$date.html[/quote]
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 [url=jarekw.eu]Blog[/url], a później [url=tanczymy.com]Tańczymy[/url] ;)

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 :-)
Skąd: Białystok
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

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

[b]@wi3z[/b]:
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 ;-)

[ Generated in 0.008 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00008 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00091 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.222.163.231' WHERE u.id=1
0.00061 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.222.163.231', 1732659311)
0.00061 SELECT * FROM punbb_online WHERE logged<1732659011
0.00045 SELECT topic_id FROM punbb_posts WHERE id=213011
0.00005 SELECT id FROM punbb_posts WHERE topic_id=22153 ORDER BY posted
0.00054 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=22153 AND t.moved_to IS NULL
0.00006 SELECT search_for, replace_with FROM punbb_censoring
0.00098 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=22153 ORDER BY p.id LIMIT 0,25
0.00092 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=22153
Total query time: 0.00525 s