Portál AbcLinuxu, 1. května 2025 07:04
Jestli jsem to správně pochopil tak by snad stačilo dát do cronu něco takového:
cp /odkud/soubor /kam/soubor_`date +%Y%m%d_%H%M`
while true; do cp ...; sleep 1200; done
ten novy subor bude mat v nazve aktualny datum a cas
Je to velice jednoduché. K /kam/soubor se připojí řetězec znaků z volání příkazu
date
Když si to pustíš, vypíše to toto:
tomas@raid:/home/tomas$date +%Y%m%d_%H%M 20090908_1345
Tedy: %Y - rok, %m - měsíc, %d - den v měsíci, _ - podtržítko, %H hodina, %M minuta.
Výsledné jméno souboru pak bude /kam/soubor_20090908_1345
cp odkud/soubor kam/soubor_`date +%Y%m%d-%H%M`
zkopíruje zadaný soubor (odkud/soubor) do cílového adresáře (kam) a pojmenuje ho jako název původního souboru + datum a čas (YYYYMMDD-Hm, takže například z "mojekocky.txt" udělá "mojekocky.txt_20090908-1356". Můžeš použít "%y" místo "%Y" a dostaneš dvouciferný rok (09 místo 2009)).
Aby to dělal cron automaticky každých 20 minut, uprav si cron (příkazem "crontab -e") takhle:
*/20 * * * * cp odkud/soubor kam/soubor_`date +%Y%m%d-%H%M`
Těch úvodních 5 hvězdiček zastupuje minuty-hodiny-den_v_mesici-mesic-den_v_tydnu, hvězdička znamená "všechny", */20 znamená "každých 20" (minut).
Pod uživatelem, který má právo číst a zapisovat to a kam potřebuješ:
crontab -e
Otevře se ti klasický editor VI, takže stisknout 'i'. V této chvíli se z toho stane normální editor. Dopíšeš tam:
0,20,40 * * * * cp /odkud/soubor /kam/soubor_`date +%Y%m%d_%H%M`
Pak stisk ESC, naťukat :wq a je to.
Mělo by to vypsat něco jako:
"/tmp/crontab.XXXXlFEQWf" 6L, 138C written crontab: installing new crontab
Do poručuji vyzkoušet na něčem neškodném. Jo a jakýkoliv výstup se posílá do emailu uživatele. Není-li určeno jinak. Více man 5 crontab
. Tento postup předpokládá nainstalovanou a spuštěnou službu crond
.
Díky, chtěl jsem ke svému komentáři dodat "Je mi jasné, že než to sesmolím dohromady tak už to tu někdo udělá za mně"
Zalezi co zapisuje do toho souboru, resp. jestli to opravdu zapisuje natvrdo do souboru, nebo nejdriv do temp souboru a pak puvodni premaze novym. Rozdil mezi 0,20,40 a */20 neni zadny, obe syntaxe by mely fungovat.
...ahá a jak prosímtě zařídím, aby se mi to spouštělo při každym startu PC samo?
Když to bude v cronu (a poběží démon crond - a to nejspíš poběží) tak se to bude po startu PC pouštět samo.
Spouštění zařídí crond
sám v určený čas. Pouze si zkontroluj, jestli ti ta služba běží.
A když žádný výstup nechci?
Přesměrování > /dev/null
jen doufám že mi to nic nerozhodí
Právě proto zkus něco takového:
* * * * * touch /tmp/neco
Toto každou minutu píchne do souboru, tzn ty to ve výpisu ls -la poznáš podle času toho souboru.
dvě verze: 20/* a 0,20,40, kterou mám použít???
Tak především */20. Ten zápis říká: každou minutu dělitelnou 20. Což je ekvivalentí výčtu minut 0,20,40.
Co znamenají jednotlivé pozice (celkem pět):
minuta hodina den v měsíci měsíc den v týdnu
Hvězdička znamená "každý", tedy zápis 30 12 * * * znamená spuštění každý den v každém měsíci ve 12:30. Dá se využít i ta dělitelnost, je jednodušší psát */5 než, 0,5,10,15,... Možností je víc. Jsou i speciální typu @reboot, což provede tu akci právě jednou během startu.
/etc/croncosi
.
Jen doplnim, ze jestli je to spravnce v crontabu zjisti prikazem "crontab -l" a taky doporucuju nechat posledni radku prazdnou - docela jsem se s tim v Debianu navztekal, nez mi doslo, ze ji tam chce.
Jinak jestli nechce dostavat maily, tak doporucuju nakonec pridat "> /tmp/back.log".
Já taky hrozně zapomínám.
Uměl jsem výborně německy, a teď už umím prd!
Uměl jsem celkem obstojně psát shellové skripty v Bashi, a teď prd!
...
to me se poved taky peknej kousek, spatne sem flashnul bios na cizim kompu kterej musim vratit ve funkcnim stavu a povedlo se mi to tak dobre ze s tim nejde nic delat (za dva dny sem vyzkousel vsecho mozny a nepomohlo nic). takze sem musel vytlacit asi 4 stovky za novej, prednahranej cip, zatim cekam kdy prijde a jestli t pak bude fungovat ... to mam z toho ze musim mit vsechno za kazdou cenu v nejaktualnejsi verzi
Dneska ráno mi došlo, že ty časy už jsou dávno pryč...
heh, tak to ti teda doslo dost skoro , ja uz som toto zistil prvy krat pri prechode s DOS 6.22 na WIN98, naslednym prechodom na linux som tento trend trochu zvratil, ale energiu na hrabanie sa v celom systeme uz jednoducho nemam
dřív to byla pouze Amča, teď pořád jen kočky a chlast ... hádej na co je tvůj systém optimalizovaný
ps: ano, i stáří způsobuje ne(z)vratné změny
>>>z výše popsaných důvodů si nejsem schopnej ho naťukat sám, vydal jsem se do temných hlubin internetu.
A od toho prece internet je. Co si porad neco pamatovat - mrknu a najdu co potrebuju.
Kdybych si mel pamatovat vsechny mozny syntaxe nejakych nastroju tak me praskne hlava.
A az jednou internet nepujde (sabotaz, cenzura, totalni zohaveni z politickych duvodu) : Snadna pomoc - vypnu PC a pudu do lesa na sisky.
Budte rad ze nejste z tech lidi co v praci sedi pred monitorem PC s internetem pochopitelne a zeptaji se Vas kde je nejaka dedina v CR. Pokud poradim mapy.cz tak su hajzl a zatajuju informace a at si to necham pro sebe.
Budte rad ze nejste z tech lidi co v praci sedi pred monitorem PC s internetem pochopitelne a zeptaji se Vas kde je nejaka dedina v CR. Pokud poradim mapy.cz tak su hajzl a zatajuju informace a at si to necham pro sebe.
Jednoduché. Já říkám "UTFG nebo si vem mapu". Když to člověk lidem nějakou dobu tluče do hlavy, tu a tam pochopí, že to má nějaký význam.
Jinak k tématu: To vidím na tátovi, ten před patnácti lety válel v DOSu solidně, ale nějak ho to časem přešlo a ty prasárny, které ho vidím dělat dneska... fůj! Pořád si totiž myslí, že tomu rozumí, ale prd!
Pořád si totiž myslí, že tomu rozumí, ale prd!To je přesně vono, ještě včera jsem si myslel, že sice nejsem mistr světa v plavání, ale že vždycky bezpečně doplavu tam kam potřebuju, dneska ráno jsem přišel na to, že se topim...
operuji, operuji a najednou koukam ze uz pitvam ...
Hello, IT. Have you tried turning it off and on again?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.