Portál AbcLinuxu, 26. dubna 2024 19:03


Dotaz: jak vytvořit skript s následující funkčností

6.12.2011 19:53 Rosta
jak vytvořit skript s následující funkčností
Přečteno: 561×
Odpovědět | Admin
Dobrý den,

chtěl bych poprosit o pomoc s tímto úkolem, který jsem dostal zadán ve škole.

zadání zní: Vytvořte vhodně pojmenovaný skript s následující funkčností: Zazálohování (např. okopírování, ale lépe archivace) všech souborů, u kterých došlo k změně inodu (změna práv, vlastnictví) před uživatelem určený časovým úsekem na místa specifikovaného uživatelem. Součástí řešení bude kontrola platnosti cest a zobrazení textové informace o probíhané činnosti.

Pokud někdo ví jak by se to dalo udělat byl bych mu moc vděčný za jakoukoli radu, vůbec si s tímto zadáním nevím totiž rady a jsem totalně bezradný. Děkuji tedy všem kdo mi jakoliv poradi s řešením.

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

Odpovědi

6.12.2011 20:09 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: jak vytvořit skript s následující funkčností
Odpovědět | | Sbalit | Link | Blokovat | Admin
FAQ
Jakub Lucký avatar 6.12.2011 20:19 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: jak vytvořit skript s následující funkčností
Odpovědět | | Sbalit | Link | Blokovat | Admin
prozkoumejte příkaz find, parametr -ctime by se vás také mohl týkat. Kontrola platnosti cest je pravděpodobně příkaz test...
If you understand, things are just as they are; if you do not understand, things are just as they are.
6.12.2011 20:24 Rosta
Rozbalit Rozbalit vše Re: jak vytvořit skript s následující funkčností
Děkuji moc za radu
7.12.2011 19:23 Rosta
Rozbalit Rozbalit vše Re: jak vytvořit skript s následující funkčností
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dobrý večer, potřeboval bych ještě poradit ohledně řešení tohodle skriptu.

Pokusil jsem se vytvořit skript:

#!/bin/sh echo "zadej cestu" read a echo "zadej cas" read b echo "$b" echo "zadej cestu archivace:" read q find $a -cmin -$b|tar -cvf bu.tar $q test -e|tar -tf bu.tar&& echo "files found"|| echo "files not found"

potřeboval bych poradit a zkontrolovat jeslti můj výtvor je v pořádku, hlavně zdali dobře zadávám do příkazu find cestu a jestli archivace do souboru .tar jsem správně napsal a hlavně si nevím rady s tím testem platnosti cest, cesty se mi uložily do toho souboru .tar a nevím jak udělat aby mi příkaz test kontroloval cesty postupně z toho souboru .tar a vypisoval napr file found a file not found, mě to vypíše pouze jednou na všechny cesty. Prosím o jakoukoliv radu děkuji mnohokrát. omlouvám se zdali je to triviánlí věc, jsem totální amatér v linuxu.
7.12.2011 22:24 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: jak vytvořit skript s následující funkčností
Pre čitateľnosť:
#!/bin/sh
echo "zadej cestu"
read a
echo "zadej cas"
read b
echo "$b"
echo "zadej cestu archivace:"
read q
find $a -cmin -$b|tar -cvf bu.tar $q
test -e|tar -tf bu.tar&& echo "files found"|| echo "files not found"
Komentár:
  • výstupom z find je zoznam mien súborov, ktoré spĺňajú kritériá definované parametrami toho find. Pre lepšiu prenositeľnosť odporúčam použiť ešte parameter -print, resp. -print0
  • tar zo štandardného vstupu neberie zoznam súborov. Vlastne ak dostane -c (teda "create") tak, zo štandardného vstupu neberie vôbec nič.
  • test -e testuje existenciu súboru, ktorý je uvedený ako ďalší parameter za tým -e. Ty tam žiaden súbor nemáš. Miesto toho tam máš | čo znamená, že štandardný výstup, z toho test (ktorý žiaden výstup nemá) | chceš poslať ako vstup do tar.
  • Popravde mi to zadanie nie je moc jasné (hlavne, čo sa týka testovania), ale mám matné tušenie (je už pomerne neskoro), že chceš použiť niečo ako
    tar cvf bu.tar `find $a -cmin $b -print`
    
  • Fakt si prečítaj to Quoting v manuálovej stránke bash-u.

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.