Author Archives: Alexandru Iepuraș

LVM (Logical Volume Manager)

          Deseori studentii chiar din prima lectie de LPI, ma intreaba ce inseamna LVM 🙂 Si ca sa nu fac copy/paste de pe wiki incerc sa explic in 2 cuvinte sa fie pe intelesul tuturor:

LVM (Logical Volume Manager) – Este un nivel de abstractizare, care ne permite sa folosim 1 sau mai multe discuri rigide (S/HDD) ca o singura entitate, dupa care aceasta entintate o putem partitiona dupa nevoi.

Nota!: Este importat de memorat, ca partitia /boot/ nu poate fi utilizata ca partitie LVM deoarece GRUB nu "intelege" partitiile LVM si respectiv nu poate citi fisierele de configurare si imaginea kernelului, ca urmare nu vom fi capabili sa pornim sistemul de operare.


Spre exemplu avem un JBOD, sau sa luam un exemplu mai simplu – 3 HDD-uri de dimensiuni diferite, fie 10, 20, 30 GB (Total 60Gb). Cu ajutorul tehnologiei LVM unim toate aceste HDD_uri in unul Logic, dupa care il partitionam dupa necesitate.
LVM

Cum lucram cu LVM ?
In LVM avem 3 nivele de abstractizare, si un set de comenzi pentru fiecare nivel care este intuitiv simplu de memorat:

Nivele de abstractizare Comenzi de lucru (lista incompleta)
1. PV (Physical Volume) — Discurile fizice, pot fi atit partitii aparte cat si discurile rigide in intregime.

pvcreate – initializeaza discurile fizice pentru a fi folosite in LVM
pvdisplay – afiseaza informatii despre discurilor fizice
pvremove – sterge un volum fizic

2. VG (Volume Group)  – Grupul de discuri care vor face parte din LVM  (Prin crearea grupei, noi indincam care partitii sau HDD-uri vor face parte din LVM)

vgcreate – creaza grupa de volume
vgdisplay – afiseaza informatii despre grupele de volume
vgreduce – sterge un grup volum

3. LV (Logical Volume) – Partitiile sau partitia logica care va/vor fi create din grupul de volume (VG).

lvcreate – creaza volumul logic
lvdisplay – afiseaza informatii despre volumele logice
lvremove – sterge un volum logic

Trecem la lucru practic:

Pentru a lucra cu LVM avem nevoie de setul de comenzi mentionate anterior, deci instalam pachetul LVM2, in caz ca el deja nu este instalat.

Pentru a vedea ce discuri avem in sistem, ce capacitate, care unde este montat executam lsblk:

Ca rezultat vedem ca la noi in sistem sint 3 HDD-uri sda, sdb si sdc.
sda – care e partitionat in 3, si pe care e instalat sistemul de operare
sdb si sdc – 2 HDD-uri care sint absolut noi, fara oricare file sistem (FS) si partitii.

Scopul nostru este de a crea un LVM din aceste 2 HDD-uri sdb si sdc.

Initializam discul sdb si sdc pentru a fi folosit in LVM:

Acum cream un Volum Group (discul virtual care este format din mai multe partitii sau hdd-uri) cu un nume user friendly

(!) Atrageti atentia ca dupa comenzile pvcreate si vgcreate am indicat doar discurile care vor face parte din LVM

Dupa ce am creat grupul de volume care vor face parte din LVM ne-a mai ramas doar sa cream volumele sau partitiile logice LV (Logical Volumes) :

Sa presupunem ca vrem sa cream 3 partitii logice (Total avem 2Gb, HDD1 + HDD2 = 1Gb +1Gb)
1 = 1.5Gb
2 = 128Mb
3 = 384Mb

Unde:
-n – este optiunea pentru numele partitiei
-L sau –size  – este optiunea pentru marimea partitiei.
MyVG – este numele Grupei de volume

Partitiile (Volumele logice) create vor aparea in /dev/[nume_vg]/ , care de fapt sint niste symlink-uri user friendly

 

Pasul urmator consta in formatare partitiilor sub un anumit file sistem, sau chiar si swap.

ulterior aceste partii pot fi montate si utilizate.

Scopul a fost atins! Ca rezultat am obtinut un disc Logic (Volume Group) din 2 discuri a cate 1Gb, care ulterior a fost repartitionat in 3 partitii.


Acum ca presupunem ca peste ceva timp am mai procurat un HDD (de 4Gb, acest HDD fiind deja al 4-a dupa numar)  care la fel dorim sa-l includem in LVM-ul deja existen. Ca urmare in loc de 2Gb vom avea 6Gb. Deci adaugam noul disc in LVM-ul deja existent:

Dupa cum vedem, hdd-ul a fost adaugat cu success in LVM, acum verificam:

 

In caz ca dorim sa excludem un HDD din LVM  parcurgem pasii urmatori:


Administrare GUI, pentru cei mai putini harnici:
Ca alternativa de administrare a LVM puteti folosi system-config-lvm, care desigur trebuie instalata in sistem

lvextend_ubuntu_root_visual

Sper ca acest articol a adus ceva lumina la capitolul LVM

Enjoy

Backup to Dropbox

skachat-dropbox-04     Deseori se intimpla ca avem nevoie sa facem copii de rezerva, fie a bazei de date, fie a anumitor fisiere.
In dependenta de gravitatea pierderii informatiei, fiecare in parte decide cand, unde, cum face copii de rezerva. Varianta ideala este de a pastra 3 copii in locatii geografice diferite, insa fiecare are “planul” sau de backup/recovery.

In acest post, astazi voi descrie cum putem face un backup planificat direct pe Dropbox. Asemanator poate fi creata procedura de backup pe un server S/FTP sau cloud de genul OneDrive sau Google Drive, insa cu ajustarile necesare in dependenta de tipul lagaturii cu serviciile cloud.

Dropbox ofera API pentru accesarea serviciilor sale, ceia ce face comod de a lucra sub linia de comanda direct. Pentru a nu inventa bicicleta, pe internet se gaseste deja un script care permite lucrul cu dropbox.

Mai intii de toare ne asiguram ca avem instalat pachetul curl, daca nu, instalam:
(RedHat based OS)
# yum install curl

sau
(Debian Based OS)
# apt-get install curl

Copiem scriptul si dam drepturi de executie

$ wget https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh
$ mv ./dropbox_uploader.sh /usr/local/bin/dropbox_uploader.sh
$ chmod +x
/usr/local/bin/dropbox_uploader.sh

Ne logam in contul Dropbox si mergem in sectiunea Development unde cream o aplicatie:

1.drb0

2.drb23. Dupa crearea cu succes, aplicatia dropbox ne va returna 2 Application Key, de ele vom avea nevoie pentru a seta clientul pe serverul Linux.

drb1

4. Acum e momentul sa pornim scriptul copiat anterior:
$ ./dropbox_uploader.sh

ca rezultat, ca prima data rulat vom vedea un output asemanator care va cere sa introducem APP KEY si SECRET KEY, (care au fost generate anterior de pagina dropbox):
drb4

5. Dupa ce am raspuns la toate “intrebarile” scriptului, primim un URL de autentificare pe dropbox.

drb5

6. La acest pas terminam cu configurarea Client (Linux) – Dropbox.

Pentru verificarea conexiunii cu Dropbox executam:

$ ./dropbox_uploader.sh info
Ca output vom vedea informatia despre starea contului:

 

Pentru a vedea lista de comenzi executam scriptul fara nici o optiune.
$ ./dropbox_uploader.sh


Trecem la crearea scriptului de backup si upload:

Eu am creat 2 scripturi separate:
1. Backup a bazelor de date din MySQL
2. Backup a directoriilor care contin pagini web din /var/www/html/ (in acest directoriu, avem site1 site2 site3 etc.)

Script1.sh

 

Script2.sh

 

 

Scripturile sint create, acum avem nevoie sa le programam sa se execute la o anumita ora intr-o anumita zi.
Spre exemplu noi nu avem nevoie sa facem backup in fiecare zi la mapele cu website-uri, asa cum ele pot fi modificate rar, sau foarte rar.
In schimb baza de date se populeaza cu informatie noua foarte des, deci bazele de date sint cu mult mai critice in cazul unui hack, sau pierdere de informatie. DIn aceasta cauza setam backup-l pentru bazele de date in fiecare noapte spre ex. la ora 3 a.m. (Atunci cand serverul este sub load minim), Iar pentru paginile web o data pe saptamina asa cum continutul se schimba mai rar.

Pentru a pune ceva in scheduler – cron executa:

# crontab -e
in care adaugam timpul dorit de executare urmat de comanda care se va executa

In cazul nostru lista din crontab va arata in felul urmator:

#Pentru DB backup in fiecare zi la ora 3 a.m.
* 3 * * *  /bin/bash /scripts/script1.sh

#Pentru Web Site Backup, in fiecare simbata la ora 2 a.m.
* 2 * * */5  /bin/bash /scripts/script2.sh

Unde:
*/5 – in asa mod se indica executarea repetata. In cazul dat – in fiecare simbata.

 

[How to] Reset root password

Linux_GRUBAstazi voi descrie cateva metode de resetare a parolei pentru super userul ROOT.

Acest proces paote fi facut in 2 moduri:

1. Prin intermediul GRUB
2. Cu ajutorul unui LiveCD Linux

Trecem la practica pas cu pas:

Metoda 1: Cu ajutorul GRUB

1. Pornim/restartam PC-ul ca sa ajungem in meniul GRUB

Linux_GRUB

2. In cazul in care avem mai multe sisteme de operare – selectam linia care coincide cu SO la care dorim sa resetam parola.
3. Tastam 'e', primim access la editarea configuratiei de boot-are asemanator ca in imaginea de mai jos


Linux_GRUB_bash
4. In linia de configurare de boot-are a sistemului de operare gasim linia in care se alfa imaginea KERNEL-ui Linux, (in cazul meu e  Linux /boot/vmlinuz-3.2.0-4-486 ) adaugam la sfirsit stringul init=/bin/bash (ceia ce deja este ilustrat in imagine) dupa care tastam F11 sau CTRL+X pentru a incarca sistemul de operare cu modificare dorita.
Aceasta modificare este aplicata doar o singura data, deoarece noi am modificat interactiv configuratia de boot-are a sistemului. La urmatorul restart GRUB va incarca fisierul de configuratie de pe discul rigid.

5. In scurt timp vom vedea pe ecran un asemenea promt:linux_boot
6. Jumatate de pas este facut, acum este necesar de montat partitia / in regim ReadWrite (RW) si sa apelam comanda passwd pentru a modifica parola pentru root:

mount -o,remount rw / 

unde -o,remount rw / – optiunea de remontare a sistemului de fisiere in regim read-write

Dupa remontarea cu succes introducem urmatoarea comanda pentru a seta o parola noua pentru userul root:
passwd root
si introducem noua parola

Linux_ch_pass7. Ca urmare vedem "Password updated successfully" – ceia ce ne dovedeste ca parola a fost modificata cu succese.
8. Facem reboot si ne logam cu noua parola setata.

 

Metoda 2: LiveCD

Daca din oarecare motive nu ai acces la grub, sau fie ca grub e cu parola oricum nu e problema de resetat parola la root.

Pentru aceasta avem nevoie de un LiveCD cu orice distributiv linux, Debian,Ubuntu,Gentoo,CentOS etc.
1. Incarcam sistemul de operare RAM
2. Deschidem consola si montam partitia pe care e instalat SO Linux.
spre exemplu data partitia pe care e instalat Linux e sda2 executam urmatoarea comanda pentru a monta partita in mapa /media/
mount /dev/sda2 /media/

3. Facem chroot in partitia montata anterior.
(!) Comanda chroot pe un sistem de tip UNIX schimbă în mod aparent directorul root pentru procesul curent și pentru toate procesele derivate din acesta. Procesul nu poate accesa fișiere în afara directorului root asignat. Uneori, acest director setat cu chroot mai poartă și numele de chroot jail

chroot /media/ /bin/bash

5. Modificam parola utilizatorului cu comanada passwd si ca argument numele utilizatorului:
passwd root

Ca urmare vedem "Password updated successfully"

 

Enjoy.

Vi/Vim

vimAm întilnit foartă multă lume, și anume chiar utilizator de GNU/Linux care încearca să evite lucrul cu editorul VI sau VIM. La întrebarea ”De ce ?” primesc mereu același răspuns cu cuvinte cenzurate în partea softuluiu dat.

De ce oare toți care il încercă sa-l folosească în linia de comanda (CLI) și nu se lămuresc în primele 2 minute îl disconsideră un produs util ? Raspunsul este simplu: VI/VIM nu este un editor intuitiv, ci unul modal cu o logica de funcționare mai deosebită. Prin urmare fară cunoștințe de bază e imposibil sa operezi cu acest editor la nivel de intuiție. Din această cauză muți care îl incearcă în grabă, sau deschid editorul și mai apoi ne știind cum sa-l închidă îl desprețuiesc. Ca urmare nu-l mai folosesc niciodată și preferă o alternativă de genul nano, emacs etc.

Recunosc că prima impresie în privința lui VI la fel a fost negativă. Prima dată cînd am început sa studiez linux, și cînd din greșeală am deschis vim, m-am intervat ca nu puteam ieși din el. Unica soluție era butonul Reset, deoarece eram doar în consolă, fara GUI. Mai tîrziu, am studiat editorul VIM mai detaliat, și pot sa spun ca am rămas impresionat de posibilitățile sale sub linia de comandă.

Deci de ce VI și VIM ?
VI – este un editor de text open source multiplatformă.
VIM – Vine de la Vi IMproved, deriveaza de la editorul VI, dar cu un set larg de îmbunătățiri.

Ce inseamnă editor modal ? – prin editor modal înțelegem că editorul are mai multe regimuri de funcționare. Cu alte cuvinte, aceași tastă poate avea funcționalitate diferită în regimuri diferite. VI/VIM operează în 2 regimuri sau moduri de bază Normal Mode (Regim normal, sau regim de comandă) și Insert Mode (Regim de inserare).

1. Regim normal (Normal mode):  În acest regim fișierul deschis poate fi listat și asupra textului se pot executa anumite modificări. Modificările se fac cu ajutorul tastelor care și sînt interpretatori de comenzi. Fiecare tastă execută o anumită comandă. Odată lansat editorul se află în regimul normal sau în regimul de comandă.

vim1 

2. Regim de inserare (Insert mode): Pentru a intra în regimul de inserare a textului, se tastează tasta i sau INSERT. În acest regim editorul permite inserarea textului, deci toate tastele sînt folosite pentru a culege text. Pentru a ieși din regimul de inserare în regimul de comanda (sau regim normal) tastăm ESC sau CTRL+C

vim2

 

Cum aflu în care regim sînt la moment ?
Atragem atenția în stînga jos al paginii, daca ne aflăm în regimul de comandă nu o să vedem nici o inscripție, însă dacă ne vom afla în regimul de inserare vom vedea scris:
vim2


Mai jos vreau să descriu cele mai utilizate comenzi de care o sa aveți nevoie:
(!) Toate aceste comenzi sunt valide în regimul normal (regimul de comandă)


Comutarea intre modurile de lucru


Operatii asupra fisierelor


Pozitionarea cursorului


Comenzi folosind marcaje

Stergere

Toate comenzile de stergere copiaza textul sters in tampon de unde el se poate extrage cu comanda

p

 


Lucrul cu tamponul (Bufer)


Cautare si schimbare (Search & Replace)


Setarea diferitelor regimuri

 

Pentru lista completa a comenzilor și posibilităților vim

Si ca bonus, recomand un cheatsheet sa-l puneti ca wallpaper 🙂

vim_cheatsheet

 

GNU/Linux + GSM Modem

3132009030311c86352Fiecare stie ce este un GSM modem, fie el de la orange, moldcell, sau de la alt operator de telefonie mobila. De regula o data conectat in portul USB a unui PC cu SO Windows, automat se starteaza procedura de instalare a aplicatie si a driverelor necesare de pe memoria interna a modemului, fie de pe CD-ul cu care vin in complectatie. Ce tine de SO GNU/Linux deseori intiminam probleme cu instalarea si configurarea a acestor dispozitive.

Da-ti sa ne descurcam ce si cum lucreaza:

De obicei asa tipuri de modemuri au 2 stari,
Regim  1 – ca storage (fie memoria interna de pe care se instaleaza driverele, sau cea externa – flash)
Regim 2 – de modem

Pe windows:
Implicit, o data conectat, modemul lucreaza in Regimul 1 – ca flash. Ca urmare aceasta permite sa instalam driverele si aplicatia de conexiune cu internetul (PPP). Aplicatia o data pornita, comuteaza modemul in regimul 2 – regimul modem.

Pe linux:
Ce tine de Linux, aici configurarea si instalarea difera, dar logica de functionare e aceasi.
Pentru schimbul de regimuri in linux foloseste usb-modeswitch.
Deci daca el deja nu a fost instalat il instalam

Dupa instalare verificam si modificam dupa necesitate fisierul  de configurare /etc/usb_modeswitch.conf

Unde  DefaultVendor si  DefaultProduct trebuie sa coincida cu id-urile modemului vostru. Aceasta poate fi verificata cu ajutorul utilitei lsusb

Odata setat corect modemul este gata de functionare.

Spre exemplu cel mai simplu test de verificare a functionalitatii corecte a modemului este sa verificam starea contului (spre ex. *133#). Insa nu toate modemele pot trimite (encrtipta) corect numarul de apel mai ales pentru numere care se incepe cu caractere de genul * sau # pentru a trimite cereri USSD. Pentru asta este nevoie de codificat numarul dat.

Pentru aceasta am creat un script are converteste numarul *133#

Deci numarul *133# codificat este – AAD86C3602

Ca urmare trimitem o cerere USSD de stare a contului:

si pentru a decodifica informatia folosim scriptul de mai jos inlocuind cu stringul primit cuvintul  STRINGUL_AICI :

Scriptul final in bash este :

Internet 2G/3G/4G pe linux

Cum ramine cu internetul ? – Foarte simplu!Odata instalat corect modemul, avem nevoie doar de aplicatia care face conexiune cu operatorul, similara ca si pe windows. In linux este folosit packetul PPP

Dupa instalare creem fisierul de configurare (spre ex /etc/ppp/peers/my_isp)

 

Pentru informatie mai detaliata sau modeme specifice gautati pe google 🙂

Cum sa setezi Java SE pe Debian

Un mic howto sa instalez Java 7 (Oracle) pe Debian:

1. Copiem pachetul Java JDK de pe oracle.comwget
wget http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-x64.tar.gz

2. Dezarhivam in /usr/lib64/jvm/
tar zxvf jdk-7-linux-x64.tar.gz -C /usr/lib64/jvm/ 

Debian are o comanda utila pentru mentenanta a diferitor versiuni al asa packete ca java update-altenatives

3. Setam Java

update-alternatives –install /usr/bin/java java /usr/lib/jvm/jdk1.7.0/bin/java 1070
update-alternatives –install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0/bin/javac 1070
unde 1070 este prioritatea

pentru a verifica versiunea activa folosim:
update-alternatives –config java

ca rezultat primim: Selection Path Priority Status
————————————————————
* 0 /usr/lib/jvm/jdk1.7.0/bin/java 1070 auto mode
1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1069 manual mode
2 /usr/lib/jvm/jdk1.7.0/bin/java 1070 manual mode
Asa cum 1070 este mai mare, se va folosi versiunea 7.0, dar in caz de ceva tot asa se poate de modificat.

La final pentru a vedea versiunea Java care este activa in sistem
java -version


Profit!

Cum scriem imagini ISO pe CD/DVD din Consolă

tux-and-cdLinux  –  Puterea liniei de comanda (CLI)

Astăzi voi scrie cum putem să scriem o imagine ISO pe CD/DVD din linia de comandă:

Să purcedem pe pași:

1. Verficăm dacă avem CD/DVD Writer

Ca output primim ceva asemanator

Dupa cum vedem, pe bus 1,0,0 avem connectat HDD-ul, pe bus 1,1,0 avem conectat un DVD-RAM. Ca urmare stiind adresa SCSI Bus pe care se afla dispozitivul DVD-RW trecem la pasul urmator.

2. Scriem ISO-ul pe CD/DVD


Unde:
-v 
= verbose
-eject  = după finisare CD-ul este scos
speed=8  = viteza scrierii
dev = adresa bus al DVD-RW
path = /locatie/imagine.iso (locatia imaginii ISO)

X11 – Setăm layout în limba română

 Azi m-am întîlnit cu problema setării limbei române, mai bine spus cu diacritice române în GUI și anume pe KDE. Implicit ele deja sînt setate, dar în dependenţă de setări, ă,î,ş,â,ţ se află pe taste diferite de celea triviale în sistemele de operare windows, ceia ce poate fi neplacut în utilizare pentru un nou utilizator Linux.

De regulă pentru scrierea diacriticelor române se folosesc tastele;
ALT + a = ă
ALT + s = ş

etc…

pentru activarea layout-ului trivial windows:
“ă” = “["
"â" = "]“
“ț” = “”
“î” =  “‘”
“ș” = “;”

executăm comanda în terminal

sau în setările KDE System Settings > Input Devices > Keyboard > Layouts > Add  (la Variant selectăm winkeys şi dăm apply.)lazout

 

De ce am inceput sa studiez linux, si de ce anume Gentoo Linux?

gentoo_logo      Orice utilizator, cînd începe să exploreze lumea distribuțiilor GNU/Linux, vede o mulțime de diferite distribuții, îndreptate spre diferite moduri de utilizare, și respectiv spre diferite grupuri de utilizatori.

     Astfel, Ubuntu, Mint sunt distribuții îndreptate spre utilizatorii de desktop ai Linux, care iubesc ca masa lor de lucru să arate frumos, ca toate instrumentele necesare să fie sub mînă și toate acțiunile care nu cer direct decizia utilizatorului să fie automatizate. Este Slackware, unde totul este absolut invers: utilizatorul este fortat să aibă grijă totală de ce face sistema, să o configureze deplin după placul său. Dacă instalezi o programă pe Slackware, din cauza că toate dependențele se calculează acolo de către utilizator, numai după ce o vei rula vei înțelege că a fost instalată și configurată normal.

      Gentoo este într-un fel mai spre mijloc: setările sistemei desigur că le faci tu cu mâna ta, dar de dependențe are grijă sistemul de portage. Cu o singură excepție: pachetul de instalare Gentoo ca atare constă din un CD minimal pentru instalare, o sistemă minimală ce conține numai compilatoarele celor mai de bază limbaje de programare, instrumentele esențiale de lucru și un editor de text, și însăși sistema de portage care ulterior va instala pachetele. Astfel, utilizatorul are posibilitatea să construiască o sistemă aproape de la 0, care va fi apropiată a maxim necesităților sale. Deci, practic se primește situația cînd deja de softul care stă la el pe comp este responsabil însăși utilizatorul calculatorului, el are posibilitatea de a modifica absolut orice, și deci capacitățile OS-ului depind numai de omul care stă în fața lui. Vrei cea mai nouă versiune a unui program? – poftim! Numai că nimeni n-o să-ți garanteze că o să lucreze normal și nu vor apărea incompatibilități între dependențele sale. Gentoo e o sabie cu două capete: poți să faci calculatorul tău să zboare, sistema fiind optimizată anume pentru el (și în unele cazuri, în dependență de capacitățile calculatorului, pot fi îmbunătățiri de peste 30%), ori poți să încarci calculatorul cu gunoi de care nu ai nevoie, frînînd la maximum capacitățile sale. Tu poți să alegi, pentru fiecare pachet în parte, cum vrei ca el să fie instalat pe calculatorul tău. Dacă știi că o anumită funcționalitate a unui program n-o să-ți fie de folos, de ce să stea pe calculator, și încă să încarce memorie operativă adăugătoare în timpul lansării programului dat?

      Gentoo prezintă utilizatorului posibilitatea de a învăța despre structura internă a unui OS GNU/Linux la un nivel practic, pe măsură ce apar noi necesități pentru dînsul. După ce va instala sistema de bază, utilizatorul trebuie să compileze kernelul, să aleagă sistemul principal de logare a mesajelor, să seteze parametrii locali ai serverului, să aleagă ce fel de soft va sta pe calculatorul său. Configurațiile pentru orice bucată de soft se face manual, editînd fișierele text necesare. Astfel, te poți apropia mai tare de spiritul acestui sistem de operare.

      De ce să aștepți ca cineva să facă pentru tine ceva, dacă ai posibilitatea să faci asta cu mîinile proprii? Tu poți să modelezi calculatorul tău așa cum vrei tu ca el să fie.