Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di smol
    Registrato dal
    Feb 2005
    Messaggi
    251

    script di shell automatico

    Salve,
    ho una macchina ubuntu, su cui devo creare uno script che venga eseguito settimanalmente. Tale script di shell deve cercare tutti i file con estensione .sql in una cartella e in tutte le sue sottocartelle e deve decomprimerli in formato tar.gz con il comando tar.
    E' possibile farlo?
    Grazie anticipatamente
    All i want, all i need is here in my arms

  2. #2
    cerca informazioni su cron
    GreyFox (Linux registered user #435102)
    greyfox.imente.org - GreyFox's shots (photo gallery)
    $ cd /pub
    $ more beer

  3. #3
    Utente di HTML.it L'avatar di smol
    Registrato dal
    Feb 2005
    Messaggi
    251
    Da quel che ho capito, cron serve solo per schedulare lo script una volta fatto.
    Comunque sono riuscito bene o male a creare lo script. Eccolo qua di seguito:

    #!/bin/bash
    dir=/disco2/ftp/backup/backup_db

    for file in $( find $dir -name '*.sql')
    do
    tar -cvzf $file.tar.gz $file
    rm -f $file
    done
    exit 0

    Questo script funziona solo se nell'ìalberatura non trova directory con degli spazi all'interno del nome. Ad esempio se trova una directory "backup database", cerca di effettuare l'operazione sulle 2 directory (inesistenti) backup e database.
    Come posso risolvere questo piccolo BUG?
    Grazie
    All i want, all i need is here in my arms

  4. #4
    Utente di HTML.it L'avatar di moskitoita
    Registrato dal
    Feb 2004
    Messaggi
    1,255
    usa le vigolette
    "Aiuterò le forze dell'ordine a sventrare eventuali truffatori, eventuali assassini che abbiano utilizzato l'informatica per fini malvagi"

    Salvatore Aranzulla, 15 Aprile 2007, cognome&nome, La7

  5. #5
    Utente di HTML.it L'avatar di smol
    Registrato dal
    Feb 2005
    Messaggi
    251
    Dove devo metterle?
    potresti farmi un esempio pratico?
    All i want, all i need is here in my arms

  6. #6
    Utente di HTML.it L'avatar di moskitoita
    Registrato dal
    Feb 2004
    Messaggi
    1,255
    Nella shell
    cat backup database.txt visualizza backup e database.txt
    cat "backup database.txt" visualizza backup database.txt
    cat backup\ database.txt visualizza sempre backup database.txt

    in partica devi usare "$file" al posto di $file
    "Aiuterò le forze dell'ordine a sventrare eventuali truffatori, eventuali assassini che abbiano utilizzato l'informatica per fini malvagi"

    Salvatore Aranzulla, 15 Aprile 2007, cognome&nome, La7

  7. #7
    Utente di HTML.it L'avatar di smol
    Registrato dal
    Feb 2005
    Messaggi
    251
    Per i file mi trovo, è vero.
    Ma per le directory quello che dici non funziona.
    Potresti dirmi dove dovrei modificare lo script per favore??

    #!/bin/bash
    dir=/disco2/ftp/backup/backup_db

    for file in $( find $dir -name '*.sql')
    do
    tar -cvzf $file.tar.gz $file
    rm -f $file
    done
    exit 0
    All i want, all i need is here in my arms

  8. #8
    Utente di HTML.it L'avatar di moskitoita
    Registrato dal
    Feb 2004
    Messaggi
    1,255
    #!/bin/bash
    dir=/disco2/ftp/backup/backup_db

    for file in $( find $dir -name '*.sql')
    do
    tar -cvzf "$file".tar.gz "$file"
    rm -f "$file"
    done
    exit 0

    A meno che $dir non contenga spazi
    "Aiuterò le forze dell'ordine a sventrare eventuali truffatori, eventuali assassini che abbiano utilizzato l'informatica per fini malvagi"

    Salvatore Aranzulla, 15 Aprile 2007, cognome&nome, La7

  9. #9
    Due cose:
    - creare un tarball con un solo file è inutile, basta gzipparlo (quindi gzip "$file", che elimina anche il file di partenza).
    - poi si può ottimizzare il tutto facendo fare il ciclo a "find", qualcosa del tipo
    codice:
    #!/bin/bash
    
    dir="/disco2/ftp/backup/backup_db"
    
    find "$dir" -name '*.sql' -exec gzip "{}" \;
    
    exit 0

  10. #10
    Utente di HTML.it L'avatar di smol
    Registrato dal
    Feb 2005
    Messaggi
    251
    Grazie Mille.
    Sei stato..."risolutivo".
    Ora devo solo schedularlo con il cron.
    All i want, all i need is here in my arms

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.