Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Guglie
    Registrato dal
    Dec 2002
    Messaggi
    1,572

    [bash] confronto files fra filesystem e tar.bz

    sto implementando una funzione di estrazione di un backup sotto forma di tar.bz nel filesystem;la cosa è evidentemente delicata, per questioni di files già esistenti, date del file diverse, versioni salvate di recente ma che in realtà sono più vecchie rispetto ad altre ecc.
    volevo provare a fare una cosa in stile etc-update di gentoo: se ci sono differenza fra il file nel filesystem e quello nel tar.bz l'utente decide cosa fare, e puo vedere i 2 files ecc..

    codice:
    codice:
    #!/bin/bash
    cd /
    backup="/home/evellon/prova.2006-08-21-0935.tar.gz"
    echo "Diffences between filesystem and archive:"
    n=1
    
    tar --diff --file $backup --directory / | grep -v "time" | while read i; do
    	echo "    $n) $i"
    	read ciao
    	let n++
    done
    esecuzione del codice:
    codice:
    $ sh check_differences.sh 
    Diffences between filesystem and archive:
        1) home/evellon/test/mklist.sh: Contents differ
    ci sono 2 errori: nell'esecuzione non aspetta il mio imput, e in teoria sarebbero 2 i files ad avere differenze, infatti se lancio lo stesso programma commentando la linea "read ciao" l'output è il seguente
    codice:
    sh check_differences.sh 
    Diffences between filesystem and archive:
        1) home/evellon/test/mklist.sh: Contents differ
        2) home/evellon/test/lista_date: Size differs
    questo è un ps -e durante il ciclo for
    codice:
     6546 pts/2    00:00:00 bash
     6616 pts/1    00:00:00 sh
     6617 pts/1    00:00:00 tar
     6618 pts/1    00:00:00 gzip
     6619 pts/1    00:00:00 grep
     6620 pts/1    00:00:00 sh
     6621 pts/2    00:00:00 ps
    se uso le pipes come sopra non dovrebbe essere eseguito prima
    tar --diff --file $backup --directory /
    poi, una volta che il processo è finito
    grep -v "time"
    e poi una volta che il processo è finito
    while read i
    ?

    a me sembra quasi che

    ho provato a separare la lettura dal ciclo for in questo modo

    files_list=$(tar --diff --file $backup --directory / | grep -v "time"i)

    ma così, non so perchè, mi spara le varie righe nella stringa $files_list una dopo l'altra, non separate da degli \n, bensì da degli spazi
    powered by GNU/Linux Gentoo
    A Elbereth Gilthoniel o menel palan-diriel, le nallon sí di-nguruthos! A tiro nin, Fanuilos!

  2. #2
    Utente di HTML.it L'avatar di Guglie
    Registrato dal
    Dec 2002
    Messaggi
    1,572
    up
    powered by GNU/Linux Gentoo
    A Elbereth Gilthoniel o menel palan-diriel, le nallon sí di-nguruthos! A tiro nin, Fanuilos!

  3. #3
    Utente di HTML.it L'avatar di Guglie
    Registrato dal
    Dec 2002
    Messaggi
    1,572
    nemmeno un'ideina?
    powered by GNU/Linux Gentoo
    A Elbereth Gilthoniel o menel palan-diriel, le nallon sí di-nguruthos! A tiro nin, Fanuilos!

  4. #4
    Utente di HTML.it L'avatar di Guglie
    Registrato dal
    Dec 2002
    Messaggi
    1,572
    up
    powered by GNU/Linux Gentoo
    A Elbereth Gilthoniel o menel palan-diriel, le nallon sí di-nguruthos! A tiro nin, Fanuilos!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.