Archivio per la categoria ‘Unix’

Di seguito una breve spiegazione su come utilizzare

  • tar
  • tar.gz
  • tar.bz2

Creazione di nuovi archivi

    # tar -cvf nome_archivio.tar nome_cartella_da_comprimere

Estrazione di archivi

    # tar -xvf nome_archivio.tar 

Elenco del contenuto ( senza alcuna estrazione dei files presnti nell’archivio )

    # tar -tf nome_archivio.tar 

Le opzioni usate hanno i seguenti significati :

c: creazione di  un nuovo archivio
f: specifica se un file è da estrarre oppure è da creare
x: estrae un archivio compresso
t: permette di visualizzare il contenuto degli archivi senza estrarne il contenuto stesso
v: visualizza in output informazioni sui file

L’utilizzo dell’utility  “tar” consente di archiviare, e  non riduce quindi lo spazio occuato dai file.

Le utility “gzip” e “bzip2”, invece  comprimono ma non archiviano, quindi combinandone l’utilizzo (aggiungendo una z, gzip, o j, bzip2, alle opzioni del comando tar) possiamo generare degli archivi compressi.

    Comprimere archivi con gzip (.tgz o tar.gz)

    #  tar -czvf nome_archivio.tgz nome_cartella_da_archiviare

    Comprimere archivi con bzip2 (.tar.bz2)

    # tar -cjvf nome_archivio.bz2 nome_cartella_da_archiviare

    Decomprimere archivi creati con gzip (.tgz o tar.gz)

    # tar -xvfz ./nome_archivio.tgz

    Decomprimere archivi creati con bzip2 (.tar.bz2)

    # tar -xjvf ./nome_archivio.tar.bz2

    Listare il contenuto degli archivi compressi

    # tar -ztf nome_archivio.tar.gz

Unix – Verifica spazio disco

Pubblicato: 13 gennaio 2014 in Unix
Tag:,

Come calcolare su Unix lo spazio disco ??

tramite il comando du (abbreviazione di disk usage, utilizzo del disco) è un comando dei sistemi operativi Unix e Unix-like,il quale calcola e visualizza il totale dello spazio nel file system occupato dai file o directory specificate.

Tag Description
-a, –all write counts for all files, not just directories
–apparent-size
print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be larger due to holes in (‘sparse’) files, internal fragmentation, indirect blocks, and the like
-B, –block-size=SIZE use SIZE-byte blocks
-b, –bytes
equivalent to ‘–apparent-size –block-size=1
-c, –total
produce a grand total
-D, –dereference-args
dereference FILEs that are symbolic links
–files0-from=F
summarize disk usage of the NUL-terminated file names specified in file F
-H like –si, but also evokes a warning; will soon change to be equivalent to –dereference-args (-D)
-h, –human-readable
print sizes in human readable format (e.g., 1K 234M 2G)
–si like -h, but use powers of 1000 not 1024
-k like –block-size=1K
-l, –count-links
count sizes many times if hard linked
-m like –block-size=1M
-L, –dereference
dereference all symbolic links
-P, –no-dereference
don’t follow any symbolic links (this is the default)
-0, –null end each output line with 0 byte rather than newline
-S, –separate-dirs
do not include size of subdirectories
-s, –summarize
display only a total for each argument
-x, –one-file-system
skip directories on different file systems
-X FILE, –exclude-from=FILE
Exclude files that match any pattern in FILE.
–exclude=PATTERN Exclude files that match PATTERN.
–max-depth=N
print the total for a directory (or file, with –all) only if it is N or fewer levels below the command line argument; –max-depth=0 is the same as –summarize
–time show time of the last modification of any file in the directory, or any of its subdirectories
–time=WORD
show time as WORD instead of modification time: atime, access, use, ctime or status
–time-style=STYLE show times using style STYLE:
full-iso, long-iso, iso, +FORMAT FORMAT is interpreted like ‘date’
–help display this help and exit
–version
output version information and exit

 

Esempio:

du -sh *
questo comando elenca tutte le cartelle ed il loro relativo spazio occupato.

Come fare a scrivere in una unica “echo” più stringhe a capo ??

Semplice , basta abilitare -e , che abilita gli escape.

Se scriviamo echo -e “Stringa1\nStringa2\nStringa3”

il risultato sarà il seguente

Stringa1
Stringa2
Stringa3

Se dobbiamo inviare una e-mail con un file allegato tramite script di shell o prompt dei comandi in Unix o Linux, è possibile utilizzare mutt un client di posta elettronica basato su terminale per i sistemi Unix-like.

Mutt è un piccolo ma potente programma di testo per la lettura di posta elettronica in sistemi operativi UNIX / Linux.

Mutt è un Mail User Agent  e non è possibile inviare e-mail senza un adeguato server di posta elettronica, ed occorre avere  un Mail Transfer Agent .

Come installare client di posta mutt

Se mutt non è installato, utilizzare i comandi apt-get o yum o up2date come segue (è necessario effettuare il login come utente root).

Debian / Ubuntu Linux user digitare il seguente comando per installare il client mutt:
# Apt-get install mutt
Fedora / CentOS o Red Hat Enterprise Linux (RHEL) comando seguente tipo di utente di installare mutt:
# Yum install mutt
OR (versione RHEL <= 4)
# Up2date mutt
FreeBSD tipo di utente il seguente comando per installare mutt tramite comando pkg_add:
# Pkg_add-v-r mutt



Come inviare allegati di posta elettronica da un prompt dei comandi?

Utilizzare il comando mutt come segue per inviare una e-mail con allegato:

$ Mutt-s "Test Mail"-a / allegati / nomefile.csv mail@dominio.com </ dirmessage / messaggio.txt



I valori utilizzati sono :

mail@dominio.com – è il destinatario della e-mail.
/ dirmessage / messaggio.txt – è il corpo del messaggio e-mail.
-A / allegati/ nomefile.csv – è l’allegato che vogliamo inviare .
-S “Test Mail” – è la riga che verrà visualizzata come oggetto della e-mail.

Maggiori informazioni si possono trovare sul sito ufficiale di MUTT

Unix – Bash – Verificare un file vuoto

Pubblicato: 21 agosto 2013 in Bash, Unix

A volte prima di eseguire delle elaborazioni sui file , ci occorre verificare se un file è presente ed è vuoto, nel  linguaggio BASH possiamo utilizzare questa sintassi:

if [ `ls -l <nome_file> | awk '{print $5}'` -eq 0 ]
then
  echo 'Il File <nome_file> è vuoto'
else
  echo 'Il File <nome_file> contiene dati.'
fi

Unix – Cron

Pubblicato: 2 agosto 2013 in Linux, Unix

Il demone Cron è un processo di Unix che esegue comandi o istruzioni in determinate date ed orari, come definito dall’utente.

Cron può gestire i comandi (jobs) in modo da eseguirli una sola volta alla prima occorrenza della data/ora scelta.

Crontab invece  è in grado di eseguire ripetutamente  i comandi (jobs). Ad esempio nel caso si voglia eseguire una determinata operazione ogni giorno alle ore 12, oppure ogni giovedì alle 23.15.

Dove vengono salvati i file di Cron ??

Solitamente il path in cui risiedono è /var/spool/cron/ , ma per potervi accedere occorre essere autenticati come root.

Per inserire una nuova operazione da schedulare digirare il comando

crontab -e

Per muoversi ed aggiungere righe al file, utilizzare i comandi dell’editor VI

La struttura della riga di schedulazione deve essere la seguente :

.---------------- [m]inute: minuto (0 - 59) 
|  .------------- [h]our: ora (0 - 23)
|  |  .---------- [d]ay [o]f [m]onth: giorno del mese (1 - 31)
|  |  |  .------- [mon]th: mese (1 - 12) OPPURE jan,feb,mar,apr... 
|  |  |  |  .---- [d]ay [o]f [w]eek: giorno della settimana (0 - 6) (domenica=0 o 7)  OPPURE sun,mon,tue,wed,thu,fri,sat 
|  |  |  |  |

*  *  *  *  *  comando da eseguire

 

 

Per visualizzare il contenuto del cron digitare

crontab -l

Per disattivare lo standard OUTPUT al termine del comando digitare :

* * * * * comando da eseguire >/dev/null 2>&1

 

 

 

 

In ambiente Unix / Linix spesso ci si trova a dover editare dei file di testo.

VI ha due modalità di funzionamento:

  • il modo comando (command)

Entrare in modalità comando è possibile in qualsiasi momento premendo il tasto ESC, ogni lettera verrà interpretata come un comando.

  • il modo inserimento (input)

In modalità inserimento ogni parola verrà inserita direttamente nel file. Per entrare in questa modalità utilizzare  i (insert).

Di seguito alcuni dei comandi più utilizzati :

Spostarsi nel file

^     inizio della riga corrente
$     fine della riga corrente
G     fine del file
1G     inizio del file

Ricerca e sostituzione del testo

/<testo>     cerca il testo dalla posizione corrente verso il basso
?<testo>     cerca il testo dalla posizione corrente verso l'alto
u     annulla l'ultima modifica effettuata
U     annulla l'ultimo annullamento
.     ripete l'ultimo comando

Comandi di copia e incolla

yy     copia la riga corrente
y2 <giu>     copia 2 righe sotto la posizione in cui si trova il cursore
p     incolla il testo nel punto dove si trova il cursore

Cancellare righe o caratteri

x     cancella il carattere in cui si trova il cursore
X     cancella il carattere alla sinistra del cursore
D     cancella tutto quello che si trova alla sinistra del cursore fino alla fine della riga
dd     cancella la riga in cui si trova il cursore
3dd     cancella 3 righe partendo dalla quella in cui si trova il cursore
dG     cancella dalla posizione in cui si trova il cursore fino alla fine del file
d1G     cancella dalla posizione in cui si trova il cursore fino all'inizio del file

Edit

i     inserisce caratteri a sinistra del cursore
I     inserisce caratteri all'inizio della linea

Salvare e uscire

ZZ     salvare e uscire
:w     salvare
:w <file>     salvare in altro file con il nome desiderato
:wq     salvare e uscire
:q     se non sono state effettuate modifche usce senza salvare
:q!     uscita incondizionata