Δημοσιεύτηκε: 10 Νοέμ 2009, 22:40
από Loxias
O The_Mentor πρότεινε:

The_Mentor έγραψε:

[...]

Σαν λύση Backup

Δημιουργούμε ένα script file
Κώδικας: Επιλογή όλων

$!/bin/sh

dpkg --get-selections | grep '[[:space:]]install$' | awk '{print $1}' > package_list


και το κάνουμε εκτελέσιμο με

Κώδικας: Επιλογή όλων
sudo chmod a+x /etc/cron.daily/package_list


Όπως βλέπετε το έχουμε βάλει και στο cron.daily ώστε να παίρνει καθημερινά backup την λίστα των πακέτων μας...


Και ο medigeek αντιπρότεινε:

medigeek έγραψε:

[...]

Και πάλι μια κάπως διαφορετική μέθοδος για δημιουργία του script:
Κώδικας: Επιλογή όλων
echo -e '#!/bin/bash\nmkdir -p /home/backup/\naptitude search "~i" -F "%p" > /home/backup/package_list' | sudo tee /etc/cron.daily/package_list
sudo chmod +x /etc/cron.daily/package_list


Δοκιμάζοντας και τις δυο μεθόδους, βρήκα καλύτερη μία συνδυαστική λύση διότι:

1. H εντολή αναζήτησης του medigeek δημιουργεί ένα text file, αλλά τα διπλά/τριπλά ονόματα των πακέτων δεν είναι
σε μία γραμμή. Είναι έτσι:

    aacgain
    acpi-
    support

    acpid
    adduser
    aisleriot
    alacarte
    alsa-
    base

    alsa-
    utils

    amrnb
    amrwb
    anacron
    app-install-
    data

    app-install-data-
    partner

Βέβαια, όποιο script θα διαβάσει το text file, θα καταλάβει που έχει συμβεί carriage return και δεν θα μπερδευτεί.
Μπερδεύομαι όμως εγώ! :lol:

## Έτσι προτίμησα να χρησιμοποιήσω την εντολή αναζήτησης του The_Mentor

2. Η δημιουργία Backup φακέλου από τον medigeek είναι πλεονέκτημα.

## Έτσι προτίμησα την εντολή του medigeek.

Το αποτέλεσμα ήταν ένας συνδυασμός των εντολών των δύο φίλων και βγήκε αυτό:

Κώδικας: Επιλογή όλων
#!/bin/sh
echo -e '#!/bin/bash\nmkdir -p /home/backup/
dpkg --get-selections | grep '[[:space:]]install$' | awk '{print $1}' > /home/backup/package_list' | sudo tee /etc/cron.daily/package_list
sudo chmod +x /etc/cron.daily/package_list


Το δοκίμασα και τρέχει μια χαρά. Κάνει καθημερινό backup της λίστας των πακέτων και προσθέτει τα νέα :D

Ευχαριστώ και τους δύο για την ιδέα που με απασχόλησε δημιουργικά! :thumbup: