Jak pracovat s crontab

Prosím o radu, jak mám postupovat aby se mi do souboru /tmp/skript zapisoval text každou minutu.
/etc/int.d/cron start jsem zapnul crona
crontab -e
a pak jsem napsal
echo text >> /tmp/skript
ale v souboru skript nemam žádný text

Zdravím,
upřímně nevím, proč by někdo chtěl zapisovat “echo text >> /tmp/skript” každou minutu, ale snad předpokládám správně, když se jedná pouze o příklad a zbytek si asi dořešíte?

Myslím si, že lepší bude přejít do administračního rozhraní LuCI rozkliknout System a vybrat “Scheduled tasks” (v češtině: Naplánované úlohy)

a zde vložit:
* * * * * echo text >> /tmp/skript
Je důležité, aby tam byl poslední prázdný řádek, jinak Ti cron nebude fungovat.

Případně se můžete inspirovat:
https://www.turris.cz/doc/cs/public/cron_automaticke_vypinani_wifi

Dobrý den. Chtěl bych se zeptat na doplnění crontab. Chtěl bych aby se řekněme každou půlhodinu odkopírovala celá složka /var/log na /mnt/mikrosd - tedy všechny logy (celá složka) na microsd kartu co mám v turrisu. Bude to fungovat takto? Po doplnění do crontab?

*/30 * * * * cp -r /var/log /mnt/mikrosd

Nebo budu muset příkaz cp vepsat do souboru *.sh a na tento odkázat z crontab?

jde to obema zpusoby at uz primo prikazem v crontab tak odkazem z crontab na .sh
nebo muzete vyuzit na TO /etc/cron.d/ a tam vytvorit dalsi soubor s pravidly podobne jako v crontab

Dovolím se pozastavit nad vaším výrokem:
“na microsd kartu co mám v turrisu”

Podle vašeho psaní v dalších vláknech předpokládám, že tou kartou myslíte tu zastrčenou ve slotu pod RAM pamětí.
Pokud ji opravdu myslíte a provedl jste migraci na BTRFS, tak už ji používáte a není nutné ji mountovat a pracujete přímo s ní.
viz. moje vysvětlení Nefunkční collectd/grafy

Ano to je pravda. Ale v tom příkazu ji nemountuji ale je to jen cesta do jedné její složky - předpokládám že /mnt/mikrosd je cesta do složky. Pokud bych ji chtěl mountovat tak by to asi vypadalo jinak ten zápis.
terminal

Promiňte to byl můj chybný úsudek po spatření cesty /mnt/ :wink: . Ano předpokládáte správně je to jenom zápis cesty ke složce (která v případě migrovaného Turrise 1.x leží většinou na kartě).

Dííky :slight_smile: uffff, normálně ve mě hrklo jak v pendlovkách že jsem někde něco udělal špatně.

Co všechno je namountovano (a kam) zjistíte příkazem block info

Openwrt wiki

Musím přiznat chybu :frowning: opravdu neúmyslně jsem vás uvedl v omyl. Naneštěstí jsem si to uvědomil až pozdě. Já totiž zapoměl na to že mám k turrisu připojen napájený USB hub a do něho mám vloženou USB čtečku microsd karet a v ní je microsd karta 7GB - a to je ono /mnt/mikrosd.
Omlouvám se opravdu jsem na to zapoměl jako na smrt :frowning:
Ale měl bych ještě jednu otázku. Když jsem tedy provedl migraci - a ta skončila v terminálu přesně tak jak je popsáno v návodu - co ve Forisu znamená hláška v části Storage

Device currently in use is mmcblk0p2 (internal flash). !!! tady to internal flash

Zařízení Description Filesystem UUID
sda Generic USB SD Reader (7 GiB)
sda1 mikrosd (7 GiB) vfat D5EB-2F23
Changes to this setting will take effect on next reboot!

To znamená microSD kartu (v případě routeru Turris 1.x zmigrovaného na BTRFS) … v ostatních případech je to vnitřní paměť routeru.
Tedy ta, která když se opakovanými zápisy zničí, jde do nebe i router (nebo je drahá oprava způsobem přepájet flash paměť na desce).

Já si to čistě pro sebe s dovolením zjednoduším:
mmcblk0p2 -> microsd karta která je v routeru pod RAM-kou - je to správně?
Pro jistotu ještě přiložím výstup block info:
root@turris:~# block info
/dev/mtdblock2: TYPE=“jffs2”
/dev/mtdblock3: UUID=“c19b9ebe-8c5244e9-0b4e8a22-2b4fc80d” VERSION=“4.0” TYPE=“squashfs”
/dev/mtdblock4: TYPE=“jffs2”
/dev/mmcblk0p1: UUID=“6b7c-0682” VERSION=“FAT16” TYPE=“vfat”
/dev/mmcblk0p2: UUID=“25707f1f-ada6-4907-9e3a-771657b4c977” NAME=“UUID_SUB” TYPE=“btrfs”
/dev/sda1: UUID=“d5eb-2f23” LABEL=“mikrosd” VERSION=“FAT32” TYPE=“vfat”

tedy všechny logy (celá složka) na microsd kartu co mám v turrisu.

Mohu vědět, proč byste zapisoval všechny logy, co půlhodiny na flash memory, kterou najdete např. v microSD kartách, USB flashkách, SSD, apod.? Flash paměti mají nějakou svojí životnost - omezený počet zápisů/mazání.

Úložiště nepočítají s tím, že na ně budete provádět velmi časté zapisování (např. systémové logy), a proto je zapisujeme do operační paměti (RAM) /tmp/log (/var je symlink na /tmp), pokud bychom to nedělali tak dojde k opotřebení NAND,microSD karty,eMMC. Tzn. ten stejný problém, co jste měl s použitou microSD kartu.
Bohužel, pokud má někdo LXC kontejner na eMMC, tak si neuvědomí, že se logy z LXC kontejnerů nezapisují do RAM, ale na eMMC, proto v Turris OS 3.10 máme Storage plugin.

Jakmile dojde k výpadku elektřiny/restartu routeru, tak vše, co se ukládalo do operační paměti bude nenávratně pryč. Pokud, ale z nějakého důvodu musíme mít nějaké logy i po restartu routeru, tak bych to za žádných okolností nedával na microSD kartu ze které Vám běží systém. Alespoň bych to dal na USB flashku jako sice o moc lepší to není, ale výměna je rozhodně snadnější než rozebrat router a vyměnit microSD kartu. Každopádně existuje i jedna z lepších možností např. použít syslog-ng a remote logging.

Nezapomínejte na to, že je lepší “ošoupat” microSD kartu než NAND (Turris 1.x)/eMMC (Turris Omnia), které jsou naletované na desce a je velmi obtížná jejich výměna.

// EDIT: @Nones byl rychlejší. :frowning:

Ano, to chápu. Moje původní myšlenka byla taková že pokud se router restartuje - třeba sám vlivem nějaké chyby o které nevím - tak by bylo dobře mít někde uložený log abych se mohl podívat co se dělo předtím než došlo k restartu. Ale to byla původní myšlenka a jak vidím špatná takže od toho upustím.

Dotaz ohledně obsahu /var/log/messages - založit nové vlákno? Plní mě ho takovéto zápisy:
2018-05-18 12:13:16 notice unbound[]: [6336:0] notice: sendto failed: Permission denied
2018-05-18 12:13:16 notice unbound[]: [6336:0] notice: remote address is 2001:218:2000:3005::202 port 53
a to i přesto že mám ve Forisu v nastavení wan zakázané IPv6 - tedy předpokládám že to je nějaká souvislost s tímto.

Tohle se řešilo na starém fóru. Jde o to, že nemáte IPv6, ale jedná se o naprosto neškodná hlášení.

Samozřejmě, že pokud Vás to nějakým způsobem otravuje, tak je možné vypnout podporu IPv6 v Unboundu tím, že je nutné upravit soubor /etc/config/resolver, kde odstraněním # před
config resolver ‘unbound_includes’ odkomentujete daný řádek
a pod něj vložte např.

 	list include_path ‘/etc/unbound/ipv6.conf’

Soubor /etc/unbound/ipv6.conf vytvořte a do něj vložte následující řádky:

server:
          do-ip6: no

Potom je nutné provést reload, který znovu načte konfigurační soubory unboundu nebo jej restartovat.

 /etc/init.d/unbound reload
2 Likes

Aha. Děkuji. Pročtu si to. Viděl jsem tam “failed” a “denied” tak jsem měl strach že jsem něco nespustil nebo nastavil špatně.

Tu část ‘unbound_includes’ jsem v tom souboru resolver vůbec neměl.
Zapsal jsem ji a vytvořil jsem i ten soubor ipv6.conf ve složce /etc/unbound
Teď restartovat router nebo si to převezme automaticky?

Pokud jste to tam neměl a přidal jste to tam, aby to vypadalo následovně:

config resolver 'unbound_includes'
 	list include_path ‘/etc/unbound/ipv6.conf’

Tak stačí následně restartovat službu unbound nebo reload (který znovu načte configurační soubory dané služby); doplnil jsem to i do předešlého postu

Scházelo jedno lomíko ale vi je přítel a když člověk ví jak s ním tak pomáhá :slight_smile: jdu reloadovat.

Ještě pokud stále chcete zapisovat logy nějak permanentněji, tak vás odkáži na naši starší konverzaci. Kde popisuji jak upravit syslog aby dělal kopii messages zápisů také jinam než do RAM (/tmp/log/).
https://forum.turris.cz/t/samovolne-restartovani-omnia-i-1-x/5097/53