Archive for the ‘shell’ Category
Posted by:
admin (lug 26)
Ecco un esempio di come riprendere a scaricare un file parzialmente scaricato via scp o rsync. Visto che scp non supporta il resume, se siè iniziato a scaricare il file con questo comando, dobbiamo comunque sostituirlo con un alternativa basata su rsync:
rsync –partial –progress –rsh="ssh -p 1022" root@remotehost:/~/filename filename
Nell'esempio riportato sopra è anche indicato come comporre il comando se si sta usando una porta diversa dalla tradizionale 22 per il protocollo SSH.
Published in:
linux,
shell,
tips
Posted by:
admin (lug 22)
Provate ad usare il validissimo Plowshare (un programma a linea di comando) ingrado di eseguire l'upload e il download per alcuni dei più popolari siti web di file-sharing. Funziona sui sistemi Linux e Unix-like, supporta: Megaupload, Rapidshare, 2Shared, 4Shared, ZShare, Badongo, DepositFiles and Mediafire. In pratica è un sostitutivo di wget per questi siti.
Per installare Plowshare in Ubuntu Linux
1. Se non soddisfatte, ottemperiamo alle dipendenze:
sudo apt-get install curl recode imagemagick tesseract-ocr-eng spidermonkey-bin aview
2. Download Plowshare, estraete il contenuto ed installate. Esiste anche la versione già pacchettizata .deb, se usate quella versione vi basta fare doppio click sul pacchetto e confermare l'installazione, viceversa:
tar xvzf plowshare-0.X
3. Now let's set up Plowshare:
cd plowshare-0.X
sudo bash setup.sh install
I comandi di Plowshare
Download di un file da rapidshare:
plowdown http://www.rapidshare.com/files/86545320/Tux-Trainer_25-01-2008.rar
Download di u na lista di files (uno per linea):
plowdown file_with_links.txt
Download di un file da megaupload con free membership ID:
plowdown -a myuser:mypassword http://www.megaupload.com/?d=132348234
Download di un file protetto da password da megaupload:
plowdown -p somepassword http://www.megaupload.com/?d=ieo1g52v
Get only the file URL without actually downloading it. Very handy if you want to use another web downloader:
plowdown –link-only http://www.2shared.com/file/4446939/c9fd70d6/Test.html | xargs -rt wget
Per utenti avanzati: se hai trovato una pagina con diversi links a files ospitati su megaupload vuoi farne il download, per vedere i primi 10 links, devi usare il seguente comando:
curl http://some-website.com/page.html | \
grep -o "http://www.megaupload.com/[^\"< ]*" | uniq | head -n10 | plowdown -
Per filtrare i links funzionanti in un file di testo:
plowdown -c file_with_links.txt > file_with_active_links.txt
Upload di un file su megaupload con un free membershipID:
plowup -a myuser:mypassword -d "My description" /path/myfile.txt megaupload
Upload di un file su megaupload con un Premium ID e multifetch upload:
plowup -a myuser:mypassword -d "My description" –multifetch http://www.somewherefarbeyond.com/somefile megaupload
Upload di un file su rapidshare anonomamente, cambiando il nome del file dopo l'upload:
plowup /path/myfile.txt rapidshare:anothername.txt
Con screen si può condividere la sonsole tra più utenti connessi in locale o via ssh. Per farlo basta seguire i seguenti passi, le istruzioni sono tipiche per un sistema debian, ma valgono similarmente per altre distribuzioni.
1. Installare screen
sudo apt-get install screen
2. Dal computer host viene eseguito screen col parametro per avviare una sessione screen -S SessionName. -S permette di specificare un nome per la sessione, questo permette di gestire molteplici sessioni e molti user contemporaneamente in maniera facile.
screen -S screen-test
4. L'utente remoto (guest) usa SSH per connettersi al computer remoto (remotehost)
ssh guest@remotehost
5. Il computer host (remotehost) acconsente la connessione multi utente nella sessione screen digitando CTRL-A: multiuser on (tutti i 'comandi screen' si aprono con la sequenza di escape CTRL-A).
CTRL-A:multiuser on
6. Quindi, l'host (remotehost) deve concedere l'autorizzazione per l'utente remoto (guest) per permettergli di accedere alla sessione di screen con il commadn CTRL-A: acladd nome_utente dove nome_utente è login dell'utente remoto.
CTRL-A:acladd guest
7. L'utente remoto può connettersi alla sessione dell'host. La sintassi per connettersi alla sessione di screen di un altro utente è host_username screen-x / sessionname.
screen -x username/screen-test
Published in:
HowTo,
linux,
shell,
tips
Posted by:
admin (apr 19)
Nella shell si può specificare il formato della data nel seguente modo:
date +FORMAT
Ad esempio digitando:
$ date +"%m-%d-%y"
Si ottiene:
04-17-10
Se si vuole l'annoa 4 cifre:
$ date +"%m-%d-%y"
Si ottiene:
04-17-2010
Per ottenre l'ora corrente basta digitare:
$ date +"%T"
Si ottiene:
19:55:04
Per ottenre l'ora basata sulle 12 ore:
$ date +"%r"
Si ottiene:
07:56:05 PM
Per visualizzare l'ora nel formato HH:MM:
$ date +"%H-%M"
Si ottiene:
07:56
Lista completa delle opzioni per formattare il domando date:
- %%
- a literal %
- %a
- locale's abbreviated weekday name (e.g., Sun)
- %A
-
locale's full weekday name (e.g., Sunday)
- %b
- locale's abbreviated month name (e.g., Jan)
- %B
- locale's full month name (e.g., January)
- %c
- locale's date and time (e.g., Thu Mar 3 23:05:25 2005)
- %C
- century; like %Y, except omit last two digits (e.g., 21)
- %d
- day of month (e.g, 01)
- %D
-
date; same as %m/%d/%y
- %e
- day of month, space padded; same as %_d
- %F
- full date; same as %Y-%m-%d
- %g
- last two digits of year of ISO week number (see %G)
- %G
- year of ISO week number (see %V); normally useful only with %V
- %h
- same as %b
- %H
-
hour (00..23)
- %I
- hour (01..12)
- %j
- day of year (001..366)
- %k
- hour ( 0..23)
- %l
- hour ( 1..12)
- %m
- month (01..12)
- %M
-
minute (00..59)
- %n
- a newline
- %N
- nanoseconds (000000000..999999999)
- %p
- locale's equivalent of either AM or PM; blank if not known
- %P
- like %p, but lower case
- %r
- locale's 12-hour clock time (e.g., 11:11:04 PM)
- %R
-
24-hour hour and minute; same as %H:%M
- %s
- seconds since 1970-01-01 00:00:00 UTC
- %S
- second (00..60)
- %t
- a tab
- %T
- time; same as %H:%M:%S
- %u
- day of week (1..7); 1 is Monday
- %U
-
week number of year, with Sunday as first day of week (00..53)
- %V
- ISO week number, with Monday as first day of week (01..53)
- %w
- day of week (0..6); 0 is Sunday
- %W
- week number of year, with Monday as first day of week (00..53)
- %x
- locale's date representation (e.g., 12/31/99)
- %X
- locale's time representation (e.g., 23:13:48)
- %y
-
last two digits of year (00..99)
- %Y
- year
- %z
- +hhmm numeric timezone (e.g., -0400)
- %:z
- +hh:mm numeric timezone (e.g., -04:00)
- %::z
- +hh:mm:ss numeric time zone (e.g., -04:00:00)
- %:::z
- numeric time zone with : to necessary precision (e.g., -04, +05:30)
- %Z
- alphabetic time zone abbreviation (e.g., EDT)
Published in:
linux,
shell,
tips
Posted by:
admin (apr 19)
Per visualizzare le condivisione attive consiglio di fare prima questo comando:
smbclient -L <windows-box> -U <username>
Dopo possiamo procedere a mappare la condivisionewindows nella nostra linux box nel segunete modo:
- Creare la directory per il mountpoint: mkdir /mnt/<name-of-mount-point>
- Montiamo il windows share share:
mount -t cifs -o username=<username>,password=<password> //<win-box>/<share> /mnt/<name-of-mountpoint>
Note: The syntax -username=<username>,password=<password> saves the password.
- Infine se volete potete creare il link simbolico al drive: ln -s /mnt/<name-of-mount-point> /<path-of-symlink>
Published in:
linux,
samba,
shell,
tips
Posted by:
admin (feb 22)
Per aggiungere la sintassi colorata a nano si deve in prima istanza creare il file di configurazione .nanorc nella propria home page, in seconda istanza reperire da questo indirizzo: http://code.google.com/p/nanosyntax/source/browse/#svn/trunk/syntax-nanorc i files .nanorc da include nella configurazione per ottenere l'effetto desiderato.
Esempio di testo da aggiungere al .nanorc:
include "/usr/share/nano/php.nanorc"
include "/usr/share/nano/sh.nanorc"
include "/usr/share/nano/java.nanorc"
include "/usr/share/nano/patch.nanorc"
include "/usr/share/nano/python.nanorc"
include "/usr/share/nano/html.nanorc"
include "/usr/share/nano/perl.nanorc"
include "/usr/share/nano/ruby.nanorc"
include "/usr/share/nano/js.nanorc"
Published in:
linux,
shell,
tips
Posted by:
admin (ott 19)
Ctrl + A Va all'inizio della riga che si sta digitando.
Ctrl + E Va alla fine della riga che si sta digitando.
Ctrl + L Pulisce lo schermo.
Ctrl + U Pulisce lo schermo prima del cursore. Se si è alla fine della riga, pulisce l'intera riga.
Ctrl + R Vi permette di cercare attraverso i comandi usati in precedenza.
Ctrl + C Termina qualsiasi cosa stiate facendo.
Ctrl + D Uscita dalla attuale shell.
Ctrl + Z Avvia alla sospensione in background qualsiasi cosa stiate facendo.
Ctrl + W Cancella la parola che sta prima del cursore.
Ctrl + K Pulisce la linea dopo il cursore.
Ctrl + T Inverte gli ultimi due caratteri prima del cursore.
Esc + T Inverte le ultime due parole prima del cursore.
Alt + F Muove il cursore in avanti di una parola nella riga corrente.
Alt + B Muove il cursore indietro di una parola nella riga corrente.
Tab Completa automaticamente i nomi di files e cartelle.
Ctrl + Y Incolla (come nel copia e incolla) tutto il testo davanti al cursore.
Nota : Alcuni di questi comandi non funzionano se l'accesso alla shell è via telnet, sessione SSH o se la tastiera è configuratain maniera particolare
Published in:
linux,
shell,
tips
Posted by:
admin (apr 20)
Quando installiamo spamassassin sul nostro mail server abbiamo già installato uno script utilizzabile per scaricare delle regole per migliorare la cattura delle email spam che giungono sul nostro server.
Lo script si chiama sa-update . Sotto riportiamo un semplice entry da inserire nel crontab della vostra linux box per richiamare tutti i giorni alle ore 7:00 lo script e per mantenere up to date le rules del vostro spamassassin.
0 7 * * * /usr/bin/sa-update -D –updatedir /etc/mail/spamassassin/
Ricordatevi di riavviare anche il servizio di spamassassin dopo aver effettuato l'aggiornamento col comando:
/etc/init.d/spamassassin restart
oppure
/etc/init.d/spamd restart
N.B.: Comandi e locazioni possono variare da distro a distro, ma per il sysadmin non dovrebbe essere difficile trovare la corretta posizione. In caso di difficoltà contattateci o lasciate un commento.
Published in:
linux,
shell,
spam,
tips
Posted by:
admin (mar 15)
Come per l'obsoleto windows anche nelle distribuzioni Linux, nel nostro caso prendiamo ad esempio Ubuntu è possibile aggiungere i caratteri (fonts) in maniera facile.
da terminale basta digitare il comando:
sudo nautilus /usr/share/fonts/truetype/
Ricordatevi che per ogni distribuzione si deve sostituire a nautilis il proprio file manager come ad esempio dolphin per kubuntu. Dopo aver copiato i true type fonts in questo percorso, potete anche mettere delle sub directory per meglio organizzare i vostri fonts dovete avviare il refresh della cache dei fonts col comando:
fc-cache -f -v
Il gioco è fatto, basta riaprire l'applicazione da cui vogliamo usare il fonts di nostro interesse.
Published in:
linux,
shell,
tips,
ubuntu
Posted by:
admin (gen 17)
Spesso capita di dover mettere mano a corposi file di configurazioni in cui ci possiamo arrangiare con un pugno di parametri. In questi casi possiamo rimuovere tutta la fuffa inutile semplicemente utilizzando il comando riportato sotto:
# grep -v "^#" /etc/my.conf | sed -e '/^$/d' > /etc/my_new.conf
oppure si può usare questa alternativa:
# cat /etc/my.conf | sed '/ *#/d; /^ *$/d' > /etc/my_new.conf
Ricordatevi di sovrascrivere my_new.conf al file originario dopo averne verificato il contenuto.
Published in:
linux,
shell,
tips
Posted by:
admin (set 12)
Visualizzare tutti i pacchetti rpm installati:
# rpm -qa
Eseguire una query al db rpm filtrando tutti pacchetti contenenti la stringa 'httpd':
# rpm -qa | grep httpd
Ottenere informazioni su un determinato pacchetto installato, esempio:
# rpm -qi httpd
Visualizzare la lista dei file forniti da un pacchetto installato, esempio:
# rpm -ql httpd
Visualizzare solo la lista dei file di configurazione forniti da un pacchetto installato:
# rpm -qc httpd
Ottenere informazioni sulla documentazione fornita da un pacchetto:
# rpm -qc httpd
Visualizzare la lista delle dipendenze richieste da un pacchetto:
# rpm -q httpd –whatrequires
Visualizzare le capability fornite da un pacchetto:
# rpm -q httpd –whatprovides
Visualizzare gli script avviati in fase di installazione/rimozione:
# rpm -q httpd –scripts
Visualizzare lo storico delle revisioni di pacchetto:
# rpm -q httpd –changelog
Verificare a quale pacchetto appartiene un dato file:
# rpm -qf /etc/httpd/conf/httpd.conf
Visualizzare la lista dei file forniti da un pacchetto non ancora installato:
# rpm -qp httpd-2.0.52-3.i386.rpm -l
Fedora/RedHat, firmano tutti i pacchetti con una chiave digitale privata GPG. Per importare la public-key si usa il seguente comando:
# rpm –import /media/cdrom/RPM-GPG-KEY
Per verificare l'integrità di un pacchetto, prima di procedere con l'installazione, specie se questo è stato scaricato da internet, eseguire il prossimo comando:
# rpm –checksig nome_pacchetto.rpm
Per verificare tutti i pacchetti installati sul sistema:
# rpm -qa gpg-pubkey
Installare un pacchetto binario:
# rpm -ivh nome_pacchetto.rpm
Installare un pacchetto binario ignorando le dipendenze richieste:
# rpm -ivh –nodeeps nome_pacchetto.rpm
Installare un pacchetto binario utlizzando la risoluzione automatica delle dipendenze:
# rpm -ivh –aid nome_pacchetto.rpm
Aggiornare un pacchetto senza modificarne i file di configurazione:
# rpm -U nome_pacchetto.rpm
Aggiornare un pacchetto solo se è già installato:
# rpm -F nome_pacchetto.rpm
Rimuore un pacchetto rpm:
# rpm -e nome_pacchetto
Verificare file size, permessi, tipo, owner, group, MD5 checksum e ultima modifica sul database RPM:
# rpm -V httpd
Verificare tutti i pacchetti installati sul sistema – usare con cautela, impegna il sistema in maniera estrema:
# rpm -Va
Verificare un pacchetto non installato:
# rpm -Vp httpd-2.0.52-3.i386.rpm
Questo comando permette di estrarre i files dal pacchetto per essere convertiti in un flusso cpio e quindi di estrarre gli eseguibili dal pacchetto:
# rpm2cpio httpd-2.0.52-3.i386.rpm | cpio –extract –make-directories *bin*
Installazione di un pacchetto sorgente i386.
Step 1:
# rpmbuild –rebuild nome_pacchetto.src.rpm
Step 2:
# rpm -ivh /usr/src/redhat/RPMS/i386/nome_pacchetto.rpm
Installazione di un pacchetto sorgente i386 (procedura alternativa).
Step 1:
# rpmbuild –recompile nome_pacchetto.src.rpm
Step 2:
# rpmbuild –bb /usr/src/redhat/SPECS/nome_pacchetto.spec
Step 3:
# rpm -ivh /usr/src/redhat/RPMS/i386/nome_pacchetto.rpm
Creazione di un pacchetto rpm a partire dal sorgente.
Vogliamo creare un pacchetto a partire dai sorgenti dell'applicazione example. Scarichiamo il sorgente da internet con wget:
# wget http://www.example.org/dl/example-2.0.0.tar.gz
# cp example-2.0.0.tar.gz /usr/src/redhat/SOURCE
# cd /usr/src/redhat/SOURCE
# tar xzf example-2.0.0.tar.gz
Controllare se esiste all'interno della directory scompattata il file '.spec', il quale contiene le specifiche per la creazione del binario, e copiarlo in /usr/src/redhat/SPEC:
# cp example.spec /usr/src/redhat/SPEC/example.spec
Se il file .spec non esiste può essere creato. Infine prepariamo la compilazione per la creazione del nuovo rpm:
# cd /usr/src/redhat
# rpmbuild -bb SPECS/snort.spec
Published in:
linux,
redhat,
shell,
tips
Solitamente i sistemi Linux hanno preimpostato un limite di 1024 files apribili contemporaneamente. Questo limite invero è piuttosto basso in caso di macchina con forti carichi di lavoro ed in particolare in presenza di web servers con molti domini e quindi diversi puntatori a files e logs.
Quando in fase di produzione si raggiunge e si supera questo limite avvengono spesso problemi d'inconsistenza strani. Quindi è meglio intervenire tempestivamente. Conoscendo il process-id di una nostra applicazione, (ad esempio tomcat o httpd) possiamo col comando seguende esaminare il numero di files che tale processo tiene aperti:
lsof -p [process-id] | wc -l
Dopo aver compreso minimalmente il problema possiamo intervenire col comando ulimit. Usate i comandi a seguito per avere informazioni sulle impostazioni del sistema:
ulimit -Ha
ulimit -Hs
Infine per ritoccare il valore massimo dei files apribili contemporaneamente da Linux possiamo digitare:
ulimit -n 4000
Date un'occhiata anche al manpages per avere ulteriori info sul comando e su tutte le sue opzioni:
man ulimit
Published in:
linux,
shell,
tips