Categoria: Sistemistico

How to count files in a directory in linux

13 giugno 2013 di In: Sistemistico

In order to count files in a directory in linux, the command to execute is:

ls -l [directory] | grep ^- | wc -l

ls -l gets you a detailed list of the directory content
grep ^- filters the output of the first command showing all the lines beginning with –
wc -l counts lines after executing the first 2 commands

If you wanted to count only directories you can execute the following command:

ls -l [directory] | grep ^d | wc -l

How to enable SSH service on ESXi 5 using vSphere Client

13 giugno 2013 di In: Sistemistico

Today, i had a problem in connecting to our company’s ESXi’s console. Luckily after a fast googling i learnt there is another possibility.

After connecting to your host using yout vSphere Client:

  • Select the ESX host you want to enable SSH in
  • Select the “Configuration” tab
  • In the second lable on the left (Software) you will find “Security Profile”
  • Click on “Properties” in the “Services” section (the first on top)
  • Select “SSH” and click “Options…”
  • In the label “Startup Policy” select “Start and stop with host”
  • In the label “Service Commands” and start the service.

Sophos: Impossibile trovare una fonte dei pacchetti aggiornata [0x00000071]

6 giugno 2013 di In: Sistemistico

La situazione ad inizio giornata era questa: Sull’enterprise console di Sophos un numero sempre crescente ci client presentavano l’errore:

ERROR: Could not find a source for updated packages [0x00000071] o
ERRORE: Impossibile trovare una fonte dei pacchetti aggiornata

In sequenza ho verificato:
1) che i client raggiungessero il path di rete
2) che le credenziali di dominio per SophosUpdateMgr corrispondessero alle credenziali specificate nei criteri di aggiornamento.
3) che l’utente SophosUpdateMgr avesse i diritti per accedere a quella cartella.
4) che l’utente non fosse bloccato.

Al punto 4 ho trovato che effettivamente l’utente SophosUpdateMgr era bloccato e questo inibiva tutti i client antivirus ad aggiornarsi correttamente.
Per cui l’ho sbloccato. Dopo 5 minuti ho riverificato l’utenza ed era nuovamente bloccata.
Per questo sono andato a verificare l’event viewer di Protezione del domain controller quali macchine fallivano il logon.
Dopo 15 minuti buoni di ricerca ho trovato che c’erano dei client antivirus che non erano associati a nessun gruppo che fallivano il logon. Ho passato in rassegna tutti i client non associati ad alcun gruppo e li ho inseriti nel gruppo preposto. Ho provato quindi a riattivare l’utente. Dopo una mezz’ora altro blocco dell’utenza. Dall’analisi risultava che un computer continuava ad utilizzare le credenziali sbagliate. Purtroppo quel client non era censito nella Sophos Enterprise Console. Una volta capito chi era l’utente sono dovuto andare direttamente alla sua postazione per risolvere il problema. L’installazione era stata lasciata a metà e la password che era stata specificata era sbagliata. Una volta reinstallato il client tutto è tornato alla normalità.

Esportare un grafico da EXCEL (senza passare per Paint o PowerPoint)

6 giugno 2013 di In: Sistemistico

Provato su Excel 2007 ma dovrebbe funzionare su tutte le versioni.

Se volete esportare un grafico direttamente da excel potete utilizzare questo script VBA che ho originariamente trovato su http://peltiertech.com . Purtroppo la versione descritta in quel sito non funzionava. Questa è la versione corretta.

Sub ExportChart()
  Dim sChartName As String
  Dim sPrompt As String
  Dim sDefault As String
 
  If ActiveSheet Is Nothing Then GoTo ExitSub
  If ActiveChart Is Nothing Then GoTo ExitSub
 
  sPrompt = "Chart will be exported into directory of active workbook."
  sPrompt = sPrompt & vbNewLine & vbNewLine
  sPrompt = sPrompt & "Enter a file name for the chart, "
  sPrompt = sPrompt & "including an image file extension (e.g., .png, .gif)."
  sDefault = ""
 
  Do
    sChartName = Application.InputBox(sPrompt, "Export Chart", sDefault, , , , , 2)
 
    If Len(sChartName) = 0 Then GoTo ExitSub
    If sChartName = "False" Then GoTo ExitSub
 
    Select Case True
      Case UCase$(Right(sChartName, 4)) = ".PNG"
      Case UCase$(Right(sChartName, 4)) = ".GIF"
      Case UCase$(Right(sChartName, 4)) = ".JPG"
      Case UCase$(Right(sChartName, 4)) = ".JPE"
      Case UCase$(Right(sChartName, 5)) = ".JPEG"
      Case Else
        sChartName = sChartName & ".png"
    End Select
 
    If (ActiveWorkbook.Path & "\" & sChartName) <> "" Then Exit Do
 
    sPrompt = "A file named '" & sChartName & "' already exists."
    sPrompt = sPrompt & vbNewLine & vbNewLine
    sPrompt = sPrompt & "Select a unique file name, "
    sPrompt = sPrompt & "including an image file extension (e.g., .png, .gif)."
    sDefault = sChartName
 
  Loop
 
  ActiveChart.Export ActiveWorkbook.Path & "\" & sChartName
ExitSub:
 
End Sub

Una volta che avete associato questa macro ad una combinazione di tasti tipo “CTRL+E” un popup vi chiederà di con che nome volete salvare il file e con che estensione. Il file verrà salvato nella stessa cartella del file excel.

Cron: comandi e utilizzo.

18 aprile 2013 di In: Sistemistico

Cron è un utility di Unix e Solaris che permette di pianificare l’esecuzione automatica di script o programmi ad intervalli regolari.
Queste pianificazioni vengono comunemente chiamate cron jobs. Crontab (CRON TABle) è un file che contiene la pianificazione dei task che verranno eseguite in un dato momento.

Questo articolo parla di questi aspetti di Cron:
1. Restrizioni
2. Comandi
3. Sintassi
4. Esempio
5. Ambiente
6. Log

1. Restrizioni

E’ possibile eseguire la crontab solo se il vostro nome utente appare nel file /usr/lib/cron/cron.allow. Se il file non esiste, puoi usare crontab se il tuo uusername non appare nel file /usr/lib/cron/cron.deny.
Se cron.deny eiste ed è vuoto, tutti gli utenti possono usare crontab. Se nessuno dei due file esiste, solo root può utilizzare crontab.
(I file di allow/deny consistono di una lista di utenti – uno per riga).

2. Comandi

crontab -e Modifica il tuo file di crontab, o ne crea uno se al momento non esiste.
crontab -l Visualizza il tuo file crontab.
crontab -r Cancella il tuo file crontab.
crontab -v Mostra l’orario in cui è stato modificato l’ultima volta il crontab file. (Questa opzione è disponibile solo su pochi sistemi.)

3. Sintassi

Il file crontab ha 5 campi che permettono di specificare il giorno, la data e l’ora seguiti dal comando che deve essere eseguito in quell’intervallo.

* * * * * comando da eseguire
– – – – –
| | | | |
| | | | +—– giorno della settimana (0 – 6) (0 = domenica)
| | | +——- mese (1 – 12)
| | +——— giorno del mese (1 – 31)
| +———– ora (0 – 23)
+————- minuto (0 – 59)

Il valore che andrà inserito al posto dell’asterisco può avere un * o una lista di elementi separati da virgole. Un elemento può essere sia un numero nel range specificato o due numeri separati da trattino per rappresentare un range (3-6 = 3 4 5 6).
Note
A. ) E’ possibile definire dei pattern di ripetizione come /2 per ogni due minuti o /10 per ogni 10 minuti ma non è supportato da tutti i sistemi operativi.

B.) Si può specificare il giorno in 2 campi: giorno del mese e giorno della settimana. Se entrambi sono specificati, vengono intesi come cumulativi ed entrambe verranno eseguite.

4. Esempio

Una linea del file crontab come quella di seguito cancella i file temporanei da /home/someuser/tmp ogni giorno alle 18:30.

30 18 * * * rm /home/someuser/tmp/*

Cambianto i parametri come di seguito cambierà la schedulazione secondo cui viene eseguito:
min hour day/month month day/week Execution time
30 0 1 1,6,12 * 00:30 Hrs on 1st of Jan, June & Dec.
0 20 * 10 1-5 8.00 PM every weekday (Mon-Fri) only in Oct.
0 0 1,10,15 * * midnight on 1st ,10th & 15th of month
5,10 0 10 * 1 At 12.05,12.10 every Monday & on 10th of every month

Note: Se inserite inavvertitamente il comando crontab senza argomenti, non tentate di uscire con CTRL + D perché cancellerà tutto il contenuto del crontab.
Ivence usate CTRL + C.

5. Ambiente

Cron esegue il comando dalla user home con la shell (/usr/bin/sh) e fornisce un ambiente di default per ogni shell, definendo:
HOME=user home
LOGNAME=user name
PATH=/usr/bin:/usr/sbin:.
SHELL=/usr/bin/sh

Gli utenti che desiderano eseguire il loro .profile devono farlo esplicitamente in una crontab entry o in uno script richiamato dalla entry.

6. Log

Per avere il log delle operazioni eseguite durante l’esecuzione di una entry :

30 18 * * * rm /home/utente/tmp/* > /home/utente/cronlogs/clean_tmp_dir.log

Backup differenziale e incrementale, compressione e deduplicazione

15 dicembre 2012 di In: Sistemistico

Backup Differenziale
Backup cumulativo di tutti i cambiamenti effettuati a partire da un backup completo. Il vantaggio è il minor tempo necessario rispetto ad un backup completo. Lo svantaggio è che i dati da salvare aumentano ad ogni backup.

Backup Incrementale
Backup che contiene tutti i file cambiati dall’ultimo backup (completo e incrementale). Il backup incrementale è più rapido di quello differenziale ma richiede tempi di restore più lunghi poiché è necessario partire dall’ultimo backup completo e poi aggiungere in sequenza tutti i backup incrementali.

Compressione
La compressione è ottenuta tramite algoritmi di compressione, simili a quelli usati dai programmi più famosi come Winzip, WinRar, WinAce, prima che vengano registrati sul supporto di backup. Controllate il tasso di compressione, paradossalmente a volte non conviene effettuare un backup compresso. Il ripristino di eventuali dati è sicuramente più lento dato che l’archivio deve essere decompresso.

Deduplicazione
La deduplicazione (che significa “eliminazione dei duplicati”) è ottenuta tramite particolari algoritmi che possono agire a livello di singolo file o di blocco, inteso come insieme di file. La deduplicazione può essere eseguita prima, durante o dopo la copia di backup, in contemporanea o in differita rispetto alla normale operatività dei sistemi informatici.

Abilitare il servizio SSH su ESXi 5 con il vSphere Client

6 agosto 2012 di In: Sistemistico

Oggi mi sono trovato nella posizione tremenda di non poter accedere in console al nostro ESXi aziendale. Fortunatamente dopo una breve ricerca su google imparato che c’è un’altra possibilità.

Una volta connessi all’host con il vSphere Client:

  • Selezionate l’host ESX su cui volete abilitare SSH
  • Selezionate il tab “Configuration”
  • Nel secondo riquadro a sinistra (Software) trovate “Security Profile”
  • Cliccate “Properties” nella sezione “Services” (la prima in alto)
  • Selezionate “SSH” e cliccate su “Options…”
  • Dalla label “Startup Policy” selezionate “Start and stop with host”
  • Dalla label “Service Commands” avviate il servizio.

Come contare il numero di files all’interno di una cartella in Linux

27 febbraio 2012 di In: Sistemistico

Per contare i files all’interno di una directory linux il comando è:

ls -l [directory] | grep ^- | wc -l

ls -l fa la lista dettagliata del contenuto della directory
grep ^- filtra l’output del primo comando mostrando tutte le righe che iniziano con –
wc -l conta le linee in output dai primi 2 comandi

Se voleste contare solo le directory potreste lanciare il comando:

ls -l [directory] | grep ^d | wc -l

Modificare la porta di ascolto di WinRM 1.1 (per XP)

22 febbraio 2012 di In: Sistemistico

WinRM 1.1 che si installa su Windows XP per la gestione remota risponde di default sulla porta 80. Per poter modificare la porta è necessario lanciare 2 comandi che rispettivamente cancellano il listener sulla porta 80 e lo ricreano sulla porta a vostra discrezione.
I comandi sono:

winrm delete winrm/config/listener?Address=*+Transport=HTTP
winrm create winrm/config/listener?Address=*+Transport=HTTP @{port="[porta]"}

Come visualizzare la versione di Ubuntu da terminale

22 febbraio 2012 di In: Sistemistico

Per visualizzare la versione di Ubuntu da terminale basta aprire un terminale (CTRL+ALT+T) e digitare

lsb_release -a