Portál AbcLinuxu, 28. července 2025 11:58


Dotaz: Nastavení scriptu přes CRON a vytvořen souboru.

26.10.2013 18:33 Amatér
Nastavení scriptu přes CRON a vytvořen souboru.
Přečteno: 1150×
Odpovědět | Admin
Ahoj všichni, potřeboval bych vytvořit shellový script, který po spuštění dokáže:

1. Vytvořit soubor *.sh do daného adresáře s daným obsahem, mělo by to jít nějak přes "cat", ale nevím jak.J8 jsem to pořešil opravdu špatně a to tak, že script udělá wget toho souboru který má vytvořit.
2. Nastavit ten soubor, aby se spouštěl pomocí cronu. Každý den ve 3:00 ráno.

Obě věci umím, ale neumím naučit shellový soubor, aby to uměl.

REKAPITULACE:
Takže si to shrneme, potřebuji script.sh aby platilo následující:

1. Nahraji script.sh na VPS.
2. Spustím ho pomocí: chmod +x script.sh && ./script.sh
3. Například ve /var/www/ se vytvoří soubor index.sh, která bude obsahovat například "rm -R /var/www/fotky/".
4. Nastaví, aby se soubor index.sh volal každý den ve 3 ráno pomocí CRON démona.

Děkuji předem za odezvu.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Josef Kufner avatar 26.10.2013 19:58 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
Odpovědět | | Sbalit | Link | Blokovat | Admin
Konfiguraci pro cron můžeš krom /etc/crontab přidávat i do /etc/cron.d, takže prokaždý skript si tam vytvoř samostatný konfigurační soubor stejného jména, jen s nějakým prefixem, aby jsi nahodou nepřepsal něco jiného.
Hello world ! Segmentation fault (core dumped)
26.10.2013 20:22 Amatér
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
Myslím, že chápu, teď jen vědět, jak shellovým souborem vytvořit jiný soubor s obsahem pro cron.
Jendа avatar 26.10.2013 23:05 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
cat << EOF > soubor
bla
bla
bla
EOF
27.10.2013 09:58 Amatér
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
nahraji install.sh na VPS 
chmod +x install.sh 
./install.sh  

Uvnitř install.sh :  

cd /home/
mkdir /scripty/
cd scripty
cat << EOF > smazat.sh
rm -R /var/www/web1793/logs/
EOF
echo "mazaci script vytvren"

cd /etc/cron.d/
cat << EOF > mazani.sh
0 3 * * 0 /home/scripty/smazat.sh
EOF
echo "cron nastaven"
Jendа avatar 27.10.2013 14:36 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
/home/scripty/smazat.sh

chmod +x
27.10.2013 18:03 Amatér
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
Ano, chmody a všechno jsem nastavil, stejně soubor "smazat.sh" umístěný v "etc/cron.d" s obsahem "* * * * * /home/scripty/smazat.sh" nefunguje. Script "smazat.sh" cron démon nevolá.
Jendа avatar 27.10.2013 20:41 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
A ten samotný /home/scripty/smazat.sh má právo spuštění?
28.10.2013 12:04 Amatér
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
Ano má, já spíš myslel, jestli ten postup nemám špatně. Jestli cron umí jít do /cron.d/soubor.sh a z toho souboru si vzít instrukce.
Jendа avatar 28.10.2013 12:26 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
Aha! Podle mě je chyba v tom, že v uživatelských crontabech (crontab -e, /var/spool/cron*) se uživatel neuvádí, ale v systémových ještě je jeden sloupec user.
# m h  dom mon dow user  command
30  1  *   *   *   root  /root/bin/foo
28.10.2013 14:54 Amatér
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
Ani tak to nejde.
cd /home/
mkdir /scripty/
cd scripty
cat << EOF > smazat.sh
rm -R /home/scripty/script-ke-smazani.sh
EOF
chmod +x smazat.sh
echo "mazaci script vytvren"

cd /etc/cron.d/
cat << EOF > mazani.sh
* * * * * root /home/scripty/smazat.sh
EOF
chmod +x mazani.sh
echo "cron nastaven"
Jak je možné, že za minutu se soubor "script-ke-smazani.sh" stejně nesmaže?
Josef Kufner avatar 28.10.2013 16:35 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
Cron posílá chybová hlášení e-mailem. Přečti si poštu.
Hello world ! Segmentation fault (core dumped)
28.10.2013 17:06 Amatér
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
Na internetu jsem si našel, jak číst e-maily, ale já na debianu v /var/mail ano v /var/spool/mail/ nic nemám. :(
28.10.2013 18:03 pavel
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
1. Na konci skriptu ve var/spool/cron musí být prázdná řádka.

2. V názvu skriptu v /etc/cron.d/mazani.sh nesmí být tečka.

28.10.2013 18:10 pavel
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
Jo, a ten skript "mazat.sh" by měl začínat nějak takto:
#!/bin/bash

rm ....
26.10.2013 20:14 NN
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.2013
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co to je zase za hovadinu.. Dej to mazani rovnou do cronu.
26.10.2013 20:21 Amatér
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
Odpovědět | | Sbalit | Link | Blokovat | Admin
Však jsem se vyjádřil, že se jedná o příklad! :P
wamba avatar 26.10.2013 20:54 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
Odpovědět | | Sbalit | Link | Blokovat | Admin
echo 'rm -R /var/www/fotky/'>index.sh
at -f index.sh 0300
This would have been so hard to fix when you don't know that there is in fact an easy fix.
26.10.2013 21:09 Amatér
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
Jejky, děkuju. Akorát nechápu k čemu je druhý řádek, ten tomu souboru index.sh přidělý CHMOD 0300 ?
Jendа avatar 26.10.2013 23:04 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
Když nerozumíš nějakému příkazu, zkus man - v tomto případě tedy man at.
Josef Kufner avatar 26.10.2013 23:20 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
man man ;-)
Hello world ! Segmentation fault (core dumped)
27.10.2013 09:46 Amatér
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
Kilometrový text, kterému nerozumím.
27.10.2013 09:47 Amatér
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
No manual entry for at
27.10.2013 10:00 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
Asi ho nemáš nainstalovaný, hledej at ve svém balíčkovacím systému.
Nebo to zkus on-line.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
27.10.2013 10:22 Amatér
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
Zapomněl jsem se zmínit, že by to mělo fungovat bez instalace balíčků navíc, výše mi poradili jak na to přes "cat" ten netřeba instalovat, ten je přeinstalovaný. Pokud to nebude fungovat zkusím to přes ten at no. ;)
28.10.2013 14:56 Amatér
Rozbalit Rozbalit vše Re: Nastavení scriptu přes CRON a vytvořen souboru.
Tak ozkoušeno a přes cat to funguje skvěle:
cat << EOF > soubor
bla
bla
bla
EOF
Nyní bych potřeboval pomoci akorát s druhý problémem. Potřebuji funkční postup, jak naučit shellový soubor, aby uměl nastavit cron.

Díky

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.