Προς το περιεχόμενο
tritonas00

System tar & restore Project

Προτεινόμενες αναρτήσεις

Ναι εννοείται να ρωτάει. Να το βάζει μόνο του αποκλείεται σαν επιλογή...

και τι να γράψει ?

pacman/apt-get/aptitude/yum κτλ κτλ κτλ

σίγουρα γίνετε αλλά ξέρω γω, περιττό το κόβω

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

για να συνοψισουμε πρεπει να γινουν τα εξης

 

1.ελεγχος διανομης (ευκολο)

2.αναλογα τι θα βγαλει το 1 , να τσεκαρει καποια πακετα αν λειπουν/υπαρχουν και αν λειπουν να σου πεταει ενα εχτρα παραθυρακι ή στην τελικη ενα τερμιναλ για να κανει τα δικα του (αφου σε ρωταει προφανως).

3.αναλογως το 1 να οριζει καποιες μεταβλητες για τον grub/initramfs κλπ για μελλοντικη χρηση

4.να κανει την κυρια δουλεια....

 

@martinoff για αυτο που ρωτας εχουμε το (1)

αναλογως την διανομη θα βαζει μια μεταβλητη , π.χ. INSTALLER="μπλαμπλα" , οπου θα χρησιμοποιειται μετα για εγκατασταση των πακετων που θα λειπουν.

 

@triton

το θεμα ειναι οτι αν ο χρηστης δει οτι τρωει ηττα επειδη του λειπουν πακετα και πρεπει να τα περασει χειροκινητα , θα σπαστει με την ταλαιπωρια.

Ενω αν το σκριπτ του ελεγε "ξερεις τι ?σου λειπουν αυτα.Θες να στα περασω να τελειωνουμε?" και ηξερε οτι σε 1-2 κλικ θα ξεκινησει το backup του , λογικα θαναι πιο ευτυχισμενος.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

και ΝΑΙ έγινε restore σε btrfs με subvol από consola (με την γραμμη που αφορα μονο το tar) αλλά και από zenity

 

* μην κατεβάσετε το ubuntu για live-cd

 

 

@mphxths

 

ναι ρε boy, ok μαζί σου αλλά είναι γραμμές που κατεβαίνουν ......

και τπ ο tritonas νομίζω δλδ, δεν πάει να ξαναγράψει το clonezilla :P

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

@martinoff

μωρε δικιο εχεις , αλλα οταν ενα σκριπτ ασχολειται με ενα θεμα που λεγεται "backup" , πολλα μπορουν να μαμηθουν αν δεν καλυφθουν καποιες περιπτωσεις.

προτιμοτερο να ειναι καλυμενο απο ολες τις μεριες , παρα την ωρα της κρισης , να γινει η μαλακια....

και μαλιστα αν σκεφτεται να το μοιρασει στην κενωνια :)

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

thanks θερμα για το feedback martinoff !

 

Απο κει και μετα, ας αποφασισουμε σε καποιους στοχους και να ξεκινησει η υλοποιηση τους.

 

Οπου μπορω να τα κανω οκ, αλλιως εχουμε μεγαθηρια εδω μεσα που πιστευω θα βοηθησουν.

 

Αυριο θα κανω testing σε debian

  • Like 1

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

@triton

 

http://www.linuxscrew.com/2009/04/02/tiny-bash-scripts-check-internet-connection-availability/ -- για internet checking.

 

απλο , μπακαλιστικο , αλλα λογικα ειναι safe σαν λογικη.

  • Like 1

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

@martinoff χαίρομαι που πέτυχε το πείραμα...!!!!!

 

Εγώ συμφωνώ με τον mphxth όσον αφορά τις εξαρτήσεις. Και σύμφωνοι ότι δεν μπορεί να το γράψει μόνος του. Πιστεύω ότι μέχρι όπου έχει γνώσεις,χρόνο και όρεξη να το κάνει θα το πάει. Αυτά μονο ο ίδιος το ξέρει.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

μπηχτη, ωραια, αλλα αν δεν υπαρχει internet παρα μονο εσωτερικο δικτυο και θελουμε να δουμε αν εχει παρει ip το interface μας ?

 

κανουμε ping στο router ? :P

 

κοιταμε τι βγαζει η ifconfig ?

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

αχ ρε τριτων....γινεσαι προκλητικος :)

 

http://bash.cybercit...cal-ip-address/ , παρε και ενα σκριπτ που διαβαζει την τοπικη ip.

 

Παντως το θεωρω λιγο "περιττο" διοτι αν το ρουτερ λειτουργει , και δεν εχει το λινουξ νετ , λογικα δεν εχει παρει ip.

Εκτος και αν το ρουτερ ειναι σε αλλο κτιριο και δεν μπορει να δει ο χρηστης τι κανει :)

 

ΥΓ: στο σκριπτ καλυτερα να εβαζε "ifconfig eth0...." ή με καποιο τροπο να επαιρνε σαν παραμετρο την ενεργη συνδεση-συσκευη γιατι ετσι γενικα που το βαζει αν υπαρχουν πολλα interfaces θα γινει μαλακια...

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
Δημοσ. (επεξεργασμένο)

και ΝΑΙ έγινε restore σε btrfs με subvol από consola (με την γραμμη που αφορα μονο το tar) αλλά και από zenity

 

 

άκυρο, ναι μεν πέτυχε αλλά χάλασε το subvol και τα πέρασε όλα στο / και όχι στο /_subvol

εάν το κάνω χειροκίνητα mount τον δίσκο με subvolume σκάει γιατί θέλει να κάνει mount τον δίσκο το restore script

Επεξ/σία από martinoff

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

To chmod ugo+rw -R "${FOLDER[@]}" ειναι λαθος.

 

Κατεβαζω αμεσως το backup script και ανεβαζω νεο.

 

----------------------------------------

 

Διορθωθηκε.

  • Like 2

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Anyway τωρα ειναι safe το script.

Famous last words :P

 

>
1)
if [ -n "${XX+x}" ]; then
   exit
else
   κύριος κώδικας
   ... πολλές γραμμές ...
fi

2)
if [ -n "${XX+x}" ]; then
   exit
fi

Κύριος κώδικας

Όχι ότι έχει τρελή σημασία αλλά η 2η έκδοση δεν είναι πιο readable ? Εφόσον το μόνο που κάνει το if είναι να τρέχει exit δηλαδή να τελειώνει το script, τότε ο κύριος κώδικας δεν χρειάζεται να είναι μέσα σε else αλλά μπορεί να είναι χύμα. Ακόμη και το if-fi που έβαλα είναι overkill εδώ. Η καλύτερη μορφή σε αυτή τη περίπτωση είναι η σύντομη που πρότεινε ο NullScan.

 

Επίσης το ${XX+x} με μπέρδεψε. Τι κάνει ?

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

:P

 

Οπως το λες αν λειπει απο το συστημα και το tar και το zenity, τοτε θα δειχνει μονο το πρωτο echo.Δηλαδη οτι λειπει μονο το zenity.

 

Για αυτο επρεπε να βαλω αλλη μια variable, γενικη, την XX η οποια αν ειναι set τοτε exit.Αν ειναι αδεια (/dev/null) τοτε να συνεχιζει το script.

 

Ετσι δειχνει σωστα οτι λειπουν και το tar και το zenity, σε περιπτωση που λειπουν.

 

http://www.techpulp....-is-set-or-not/

 

Εχεις καλυτερο τροπο ? :-D

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Οπως το λες αν λειπει απο το συστημα και το tar και το zenity, τοτε θα δειχνει μονο το πρωτο echo.Δηλαδη οτι λειπει μονο το zenity.

 

Για αυτο επρεπε να βαλω αλλη μια variable, γενικη, την XX η οποια αν ειναι set τοτε exit.Αν ειναι αδεια (/dev/null) τοτε να συνεχιζει το script.

 

Warning χρειάζεται μόνο για το Zenity. Αν δεν έχει εγκατεστημένο το tar, βάλε να του σβήνει την / κατάτμηση για να μάθει ο ιερόσυλος να βάζει tar άλλη φορά :P

  • Like 3

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

εγώ ξαναλέω οτι θα μπορούσε να γίνει με επιλογή για text mode

 

πχ λίγο που έπαιξα μέχρι ένα σημείο

 

>
#!/bin/bash

clear

BRZENITY=$(which zenity 2>/dev/null)
BRTAR=$(which tar 2>/dev/null)

TEXTMODE=false

if [ "x$BRZENITY" = "x" ]; then
		 TEXTMODE=true
		 echo "Running in text mode"
fi
if [ "x$BRTAR" = "x" ]; then
echo "Cannot find tar, aborting."
XX=$fail
fi


if [ -n "${XX+x}" ]; then
exit
else

if [ $TEXTMODE = 'false' ]; then
zenity --info --text="This script will make a full tar backup image of your entire system.Press OK and select the location where the backup file will be created.Make sure you have enough free space." --title=Backup

echo "
---->Select the location where the backup file will be created
---->Make sure you have enough free space
---->Press Cancel to abort"

IFS=$'\n' FOLDER=$(zenity --title="Select the location where the backup file will be created" --width=500 --height=300 --file-selection --separator=$'\n' --directory); echo $FOLDER


else
echo "This script will make a full tar backup image of your entire system.Press ENTER and select the location where the backup file will be created.Make sure you have enough free space."
read a

echo "
---->Select the location where the backup file will be created
---->Make sure you have enough free space
---->Enter C to abort
"

read FOLDER

if [ $FOLDER = 'C' ]; then
exit
fi

echo $FOLDER

fi



if [ -n "$FOLDER" ]
then

if [ $TEXTMODE = 'false' ]; then
(

echo "Preparing"
mkdir $FOLDER/"`date +%A-%d-%m-%Y`"
touch $FOLDER/"`date +%A-%d-%m-%Y`"/log
touch $FOLDER/"`date +%A-%d-%m-%Y`"/errors
echo ------------------------

sleep 1
echo "Creating backup image, please wait"

rotdash2()
{
p=$1
while [ -d /proc/$p ]
do
echo -en . ; sleep 5
echo -en . ; sleep 5
echo -en . ; sleep 5
echo -en . ; sleep 5
echo -en . ; tput sgr0 ; sleep .2
done
}

tar cvpzf $FOLDER/"`date +%A-%d-%m-%Y`"/Backup-"`date +%A-%d-%m-%Y-%T`".tgz --exclude=/run/* --exclude=/lost+found --exclude=/dev/* --exclude=/proc/* --exclude=/sys/* --exclude=/boot/grub/* --exclude=/media/* --exclude=/tmp/* --exclude=/mnt/* --exclude=.gvfs --exclude=$FOLDER/"`date +%A-%d-%m-%Y`" / 1>> $FOLDER/"`date +%A-%d-%m-%Y`"/log 2>> $FOLDER/"`date +%A-%d-%m-%Y`"/errors &

rotdash2 $!

echo
echo ------------------------

echo "Setting permissions"
chmod ugo+rw -R "${FOLDER[@]}/"`date +%A-%d-%m-%Y`"" 2>> $FOLDER/"`date +%A-%d-%m-%Y`"/errors
echo ------------------------

echo Done. Tar image and logs saved in $FOLDER/"`date +%A-%d-%m-%Y`"

sleep 3

) | tee >( zenity --width=500 --height=100 --progress --pulsate --no-cancel --title="Making the tar image, please wait..." --auto-close)

else

echo "Making the tar image, please wait..." && (

echo "Preparing"
mkdir $FOLDER/"`date +%A-%d-%m-%Y`"
touch $FOLDER/"`date +%A-%d-%m-%Y`"/log
touch $FOLDER/"`date +%A-%d-%m-%Y`"/errors
echo ------------------------

sleep 1
echo "Creating backup image, please wait"

rotdash2()
{
p=$1
while [ -d /proc/$p ]
do
echo -en . ; sleep 5
echo -en . ; sleep 5
echo -en . ; sleep 5
echo -en . ; sleep 5
echo -en . ; tput sgr0 ; sleep .2
done
}

tar cvpzf $FOLDER/"`date +%A-%d-%m-%Y`"/Backup-"`date +%A-%d-%m-%Y-%T`".tgz --exclude=/run/* --exclude=/lost+found --exclude=/dev/* --exclude=/proc/* --exclude=/sys/* --exclude=/boot/grub/* --exclude=/media/* --exclude=/tmp/* --exclude=/mnt/* --exclude=.gvfs --exclude=$FOLDER/"`date +%A-%d-%m-%Y`" / 1>> $FOLDER/"`date +%A-%d-%m-%Y`"/log 2>> $FOLDER/"`date +%A-%d-%m-%Y`"/errors &

rotdash2 $!

echo
echo ------------------------

echo "Setting permissions"
chmod ugo+rw -R "${FOLDER[@]}/"`date +%A-%d-%m-%Y`"" 2>> $FOLDER/"`date +%A-%d-%m-%Y`"/errors
echo ------------------------

echo Done. Tar image and logs saved in $FOLDER/"`date +%A-%d-%m-%Y`"

sleep 3

)

fi


if [ $TEXTMODE = 'false' ]; then
zenity --info --text="Tar image and logs saved in $FOLDER/"`date +%A-%d-%m-%Y`"" --title=Done
else
echo "Tar image and logs saved in $FOLDER/"`date +%A-%d-%m-%Y`""
fi

fi

fi



 

 

 

το τρέχω τώρα σε debian να σου πω για το backup

θάνατος στο zenity, άκου 40ΜΒ

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε έναν λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι εύκολο!

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
×
×
  • Δημιουργία νέου...

Cookies

Χρησιμοποιούμε cookies για μια καλύτερη εμπειρία πλοήγησης στο site.