Sada je: 19 tra 2024, 20:03.
C, C++, Java, PHP, Ruby...

Moderator/ica: Moderatori/ce

Pravila foruma
U naslovu teme unutar uglatih zagrada navesti o kojem jeziku je riječ. Primjer: [Java]
Pozdrav,

evo, iako je tema relativno stara, budući da naslov odgovara mome problemu, odlučio sam ne otvarati novu nego pisati ovdje.

Napravio sam vrlo jednostavnu skriptu u pythonu vezano za arhiviranje u taru. Svrha skripte je napraviti backup home direktorija. Zanima me sada kako u skriptu ubaciti i destinaciju na koju želim da se datoteke arhiviraju. Ovako moram ući u direktorij koji želim (/media/Transcand/Backup_folder) i tek onda pokrenuti skriptu. Želio bih jednostavno upisati home_backup.sh i da skripta sve sama obavi, da unaprijed zna u koji direktorij mora pohraniti datoteke, automatski.
Avatar
Postovi: 48
Postovi: 48
Pridružen/a: 10 sij 2013, 23:13
Podijelio/la zahvalu: 2 puta
Primio/la zahvalu: 1 puta
Spol: M
OS: Debian GNU/Linux; XFCE
pa napravi varijable sa pathom

npr.

path = "/home/tvoj_user/"
path2 = "/media/Transcandadanda/Backup_folder/"

No malo je tesko skuziti kaj tocno trebas, jer ne znam kak ti izgleda skripta. Daj ju zakelji ovde.
stefan je napisao/la:tu mač gemišta

To understand recursion, you must first understand recursion.
Avatar
Postovi: 1536
Postovi: 1536
Pridružen/a: 22 tra 2012, 08:55
Lokacija: ForHill Croatia
Podijelio/la zahvalu: 20 puta
Primio/la zahvalu: 26 puta
Spol: M
OS: eOS Luna
Stvarno sam početnik u ovom, skripta možda čak nije niti u pythonu nego je to bash skripta, možda je to i isto, ne znam.

Kod: Označi sve
#!/usr/bin/env BASH
tar -jcvf document_backup /home/bruka --exclude "/home/bruka/Downloads" --exclude "/home/bruka/Pictures" --exclude "/home/bruka/Videos" --exclude "/home/bruka/Music" [...]

tar cvf Videos_backup /home/bruka/Videos ;;

tar cvf Pictures_backup /home/bruka/Pictures ;;

tar cvf Downloads_backup "/home/bruka/Downloads/Ostalo" "/home/bruka/Downloas/Debian_6.0.5_Squeeze_i386" "/home/bruka/Downloads/Debian_testing-Wheezy" "/home/bruka/Linux Mint" "/home/bruka/Downloads/LibreOffice_Extensions" "/home/bruka/Downloads/AdobeReader" "/home/bruka/Downloads/LibreOffice3.5.6" ;;

tar cvf Backup "document_backup" "Videos_backup" "Pictures_backup" "Downloads_backup"


Nisam odmah sve stavio u jedan tar jer sam dokumente komprimirao, a ostalo nisam. Razlog je tome što imam mape u koje stavljam ono što mi je važno pa se nadam da ću kasnije moći samo apdejtat tar sa svičem update. Ono što se često ne mijenja komprimirao sam. Volio bih sve imati u jednoj datoteci pa sam zato na kraju sve još zakopao u jedan tar.

E sad, moram ući u direktorij u koji želim napraviti bekap (cd /media/Transcend/Backup) i tek onda pokrenuti home_backup.sh, želim jednostanvo spojiti prijenosni hard disk (automatski se mounta u /media), otvoriti terminal i ukucati home_backup.sh

Mogu li nekomprimirani tar apdejtat samo sa svičem u i da automatki izbirše čega više nema u kompu ili da, još važnije doda ono što je novo.

Ja sam probao svaki od segment zasebno, ovo kada je sve zajedno sklepano sa točkom zarezom nisam progao, hoće to sve uopće radit kad je stavljeno ovako kako tu gore piše?

Hvala na pomoći.
Avatar
Postovi: 48
Postovi: 48
Pridružen/a: 10 sij 2013, 23:13
Podijelio/la zahvalu: 2 puta
Primio/la zahvalu: 1 puta
Spol: M
OS: Debian GNU/Linux; XFCE
Da, to je u bashu, možeš napraviti i u pythonu, ali sve je to manje-više isto.

Napravi varijablu dest u kojoj spremiš string lokacije gdje želiš kopirati backupirane tar arhive, korisno je i naznačiti otkad je backup, pa možeš u naziv arhive staviti datum i vrijeme, te s tar czf kompresirati na željeno mjesto, npr.

Kod: Označi sve
backup_files= "ono što želiš backupirati" ## ako želiš da ne ide sve u jednu tar arhivu napravi više varijabla u koje ćeš premiti okacije koje trebaju ići u jednu tar arhivu(npr. backup_files_1, backup_files_2) i više puta ponovi tar czf $dest/$archive_file (tu ćeš onda morati dodati još neki naziv, npr. download ako je riječ o backupu download arhive) $backup_files_n
dest="/media/300-S/Backups/"
# Create archive filename.
day=$(date +%a)
time=$(date +%R)
hostname=$(hostname -s)
archive_file="$hostname-$day-$time.tgz"
tar czf $dest/$archive_file $backup_files


Ovo je samo neki kostur, može se to još doraditi ;)
Ken Thompson je napisao/la:One of my most productive days was throwing away 1000 lines of code.



Pikacode - Arch configs
Pikacode - dwm config
Avatar
Postovi: 2254
Postovi: 2254
Pridružen/a: 11 svi 2009, 16:26
Lokacija: /dev/pts/0
Podijelio/la zahvalu: 11 puta
Primio/la zahvalu: 94 puta
Spol: M
OS: Arch Linux x86-64 subtle
retsam je napisao/la:Da, to je u bashu, možeš napraviti i u pythonu, ali sve je to manje-više isto.

Napravi varijablu dest u kojoj spremiš string lokacije gdje želiš kopirati backupirane tar arhive, korisno je i naznačiti otkad je backup, pa možeš u naziv arhive staviti datum i vrijeme, te s tar czf kompresirati na željeno mjesto, npr.

Kod: Označi sve
backup_files= "ono što želiš backupirati" ## ako želiš da ne ide sve u jednu tar arhivu napravi više varijabla u koje ćeš premiti okacije koje trebaju ići u jednu tar arhivu(npr. backup_files_1, backup_files_2) i više puta ponovi tar czf $dest/$archive_file (tu ćeš onda morati dodati još neki naziv, npr. download ako je riječ o backupu download arhive) $backup_files_n
dest="/media/300-S/Backups/"
# Create archive filename.
day=$(date +%a)
time=$(date +%R)
hostname=$(hostname -s)
archive_file="$hostname-$day-$time.tgz"
tar czf $dest/$archive_file $backup_files


Ovo je samo neki kostur, može se to još doraditi ;)


Hm, shvaćam, ali nisam siguran u neke stvari. Pod backup_files= pišem samo imena direktorija kao što si ti pokazao (backup_files_1) ili moram pisati punu destinaciju do direktorija (/home/bruka/Documents/Važno)

Ustvari, možeš li mi pojasniti što bi ova varijabla day i time zapravo radile? U ime arhive automatski stavljale datum i vrijeme? Što je s hostname, čemu to služi.

Prema ovome što si napisao datoteke ne bi bile komprimirane, što nije nužno loše, čak mi i odgovara ako bih ih kasnije mogao na jednostavan način ažurirati (switch -u). Gdje bih u tvom primjeru trebao upisati --exclude za one datoteke koje ne želim pohraniti, tipa .gconfd jer pokušavam spremiti samo ono što sam ja napravio, ne ono što sistem sam radi/instalira da bi mogao funkcionirati.
Avatar
Postovi: 48
Postovi: 48
Pridružen/a: 10 sij 2013, 23:13
Podijelio/la zahvalu: 2 puta
Primio/la zahvalu: 1 puta
Spol: M
OS: Debian GNU/Linux; XFCE
Evo konkretan primjer:

Kod: Označi sve
#!/usr/bin/env sh

backup_files="/home/luka/src /home/luka/Downloads"
dest="/media/USB"
# Create archive filename.
day=$(date +%a)
time=$(date +%R)
hostname=$(hostname -s)
archive_file="$hostname-$day-$time.tgz"
tar czf $dest/$archive_file $backup_files


U backup_files navedeš koje sve direktorije hoćeš backupirati, ne moraš više varijabla(iako možeš), on ti ih svejedno zapakira kao stablo /home/juzer/direktorij1, direktorij2 zapakira u tgz arhivu, možeš to primijeniti i u gornjoj skripti, samo navedeš dest string i ubacuješ ga ispred imena arhive i on će ti tu staviti zapakiranu arhivu.
Ken Thompson je napisao/la:One of my most productive days was throwing away 1000 lines of code.



Pikacode - Arch configs
Pikacode - dwm config
Avatar
Postovi: 2254
Postovi: 2254
Pridružen/a: 11 svi 2009, 16:26
Lokacija: /dev/pts/0
Podijelio/la zahvalu: 11 puta
Primio/la zahvalu: 94 puta
Spol: M
OS: Arch Linux x86-64 subtle
retsam je napisao/la:Evo konkretan primjer:

U backup_files navedeš koje sve direktorije hoćeš backupirati, ne moraš više varijabla(iako možeš), on ti ih svejedno zapakira kao stablo /home/juzer/direktorij1, direktorij2 zapakira u tgz arhivu, možeš to primijeniti i u gornjoj skripti, samo navedeš dest string i ubacuješ ga ispred imena arhive i on će ti tu staviti zapakiranu arhivu.


Ok, ja ću to probati kroz dan-dva pa ako bude problema javim se. Hvala na trudu! :thumbs
Avatar
Postovi: 48
Postovi: 48
Pridružen/a: 10 sij 2013, 23:13
Podijelio/la zahvalu: 2 puta
Primio/la zahvalu: 1 puta
Spol: M
OS: Debian GNU/Linux; XFCE
Riješio sam problem ovako, bi li to bilo u redu ili bih trebao što popraviti?

Kod: Označi sve
#!/usr/bin/env sh

# Setting variables
backup_home="/home/bruka"
backup_Informatika="/home/bruka/Informatika"
backup_Videos="/home/bruka/Videos"
backup_Pictures="/home/bruka/Pictures"
backup_Musics="/home/bruka/Musics"

# List of archived files
backup_contant="backup_contant.txt"

# Setting destination
dest="/home/bruka/Desktop"
backup_dest="/home/bruka/Downloads"

# Create archive filename.
day=$(date +%a)
time=$(date +%R)
hostname=$(hostname -s)
archive_file="$hostname-$day-$time.tgz"

# Exe tar
tar cvf $dest/$archive_file $backup_home --exclude "/home/bruka/Downloads" --exclude "/home/bruka/Pictures" --exclude "/home/bruka/Videos" --exclude "/home/bruka/Music" --exclude "/home/bruka/.gnubg" --exclude "/home/bruka/.gnupg" --exclude "/home/bruka/.googleearth" --exclude "/home/bruka/.gstreamer-0.10"  [...] >> $dest/$backup_contant

tar cvf $dest/$archive_file $backup_dest/"Debian_6.0.5_Squeeze_i386" $backup_dest/"Linux_Mint" $backup_dest/"Ostalo" $backup_dest/"LibreOffice_Extensions" $backup_dest/"AdobeReader" $backup_dest/"ntm-1.3.1.tar.gz" "pkg-mozilla-archive-keyring_1.0_all.deb" $backup_dest/"LibreOffice3.5.6" [...] >> $dest/$backup_contant

tar cvf $dest/$archive_file $backup_Informatika >> $dest/$backup_contant
tar cvf $dest/$archive_file $backup_Videos >> $dest/$backup_contant
tar cvf $dest/$archive_file $backup_Pictures >> $dest/$backup_contant
tar cvf $dest/$archive_file $backup_Musics >> $dest/$backup_contant


Htio bih samo umjesno varijabli day i time htio imati varijable day, month te year: debian-day-month-year... szbunjen
Avatar
Postovi: 48
Postovi: 48
Pridružen/a: 10 sij 2013, 23:13
Podijelio/la zahvalu: 2 puta
Primio/la zahvalu: 1 puta
Spol: M
OS: Debian GNU/Linux; XFCE
Ovaj moj post iznad ne radi, odnosno radi, ali svaku novu mapu piše preko stare, tako da je u arhivi uvijek samo jedna mapa, riješio sam to dodavajući svakoj lokaciji drugačije ime, napravio sam tako da svaki dio homea ima svoju arhivu. :D
Avatar
Postovi: 48
Postovi: 48
Pridružen/a: 10 sij 2013, 23:13
Podijelio/la zahvalu: 2 puta
Primio/la zahvalu: 1 puta
Spol: M
OS: Debian GNU/Linux; XFCE
u posljednje vrijeme se družim malo s pythonom, pa imam 2-3 pitanja na koje ću vjerojatno brzo dobiti odgovor :D
znači, na debianu imam trenutno verziju 3.x pythona (mislim IDLE okruženja), a do prije sam na windowsima radio sa 2.7 (čini mi se da je 2.7, uglavnom 2.x). kolko sam uvidio ima nekih razlika u sintaksi u 3.x i 2.x pa me zanima: dal su to velike razlike? dal da radim u 3.x ili 2.x verziji? kako da maknem 3.x verziju i da stavim 2.x verziju? slušam preporuke :thumbs
Postovi: 65
Postovi: 65
Pridružen/a: 13 ožu 2013, 18:44
Lokacija: Zagorje
Podijelio/la zahvalu: 3 puta
Primio/la zahvalu: 1 puta
Spol: M
OS: Debian; openSUSE

Na mreži
Trenutno korisnika/ca: / i 4 gostiju.