[linux] Rinominare i file da terminale con bash sostituendo uno o più caratteri nel nome

Immaginiamo di voler sostituire un particolare carattere nel nome dei file dentro ad una cartella. Nel mio caso in tutti i nomi è presente una @ che voglio trasformare in uno _.

Utilizzando semplici comandi di bash è possibile fare questa operazione da terminale nel modo seguente:

 

Vedi articolo

[linux] Cercare file con caratteri speciali nel nome del file

Oggi mi è capitato un curioso problema: elaborando programmaticamente un lungo elenco di file ho notato che alcuni file avevano degli insidiosi spazi bianchi tra le lettere ed i numeri. Indagando più a fondo ho notato che non si trattava di comuni spazi bianchi, bensì di caratteri speciali che venivano visualizzati come spazi bianchi.

Per trovare file con caratteri speciali quali i caratteri di controllo si può usare il seguente comando:

Con il seguente comando invece è possibile recuperare sia i caratteri non-ascii che i caratteri di controllo, sia in file che cartelle:

 

Vedi articolo

[magento] Errore in fase di download degli ordini

Problema: quando si cerca di scaricare l’elenco degli ordini viene restituito il seguente errore MAGENTO – Errore in fase di download degli ordini System.ServiceModel.FaultException: SQLSTATE[HY000]: General error: 1030 Got error 28 from storage engine, query was: DESCRIBE sales_flat_order

Soluzione: il disco del server è pieno, probabilmente riempito dai file log di Magento stesso e non è possibile effettuare la maggior parte delle operazioni. Basta cancellare i file log oppure liberare spazio sul server.

La seguente soluzione è stata testata su Magento 1.9.3 e sistema operativo CentOS.

Anzitutto premetto che l’errore non è per forza causato da Magento, ma potrebbe trattarsi del server che per qualche motivo si è riempito (per esempio a causa di aggiornamenti). Anzitutto verifichiamo la nostra situazione digitando su server linux:

Dovremmo vedere un risultato simile al seguente:

Notiamo come la partizione / sia montata su /dev/mapper/centos-root al quale rimangono disponibili solamente 20KB di spazio.

Nella maggior parte dei casi è altamente probabile che i log di magento abbiano saturato lo spazio a disposizione. Per verificarlo spostiamoci su /var/www/sito_magento/var/log.

Digitiamo:

In questo modo dovremmo vedere qualcosa di simile a questo:

Notate che il file system.log ha superato l’assurda dimensione di 57GB! A questo punto puliamo tutti i file log, eventualmente li possiamo prima salvare da qualche parte se lo riteniamo necessario. Digitiamo:

In questo modo cancelleremo tutti i file log presenti nella cartella.

Verifichiamo nuovamente la situazione digitando:

Dovremmo vedere qualcosa di simile a quanto segue:

Notiamo che si sono liberati 56GB e abbiamo nuovamente il 44% dello spazio a disposizione.

Vedi articolo

[linux] Impostare timout SSH su Putty

Per evitare che la connessione SSH si chiuda continuamente, oltre ad allungare il timeout sul nostro server, possiamo impostarlo anche da Putty.

Per farlo andiamo su Putty > Connection

Impostiamo Seconds between keepalives(0 to turn off) da 0 a 30 (aumentiamo o diminuiamo in base alle esigenze)

Spuntiamo la casella: Enable TCP_keepalives (SO_KEEPALIVE option)

Salviamo il tutto nel profilo di sessione.

Vedi articolo

[ubuntu] Aumentare tempo di timeout da SSH

Problema: la connessione SSH va in timeout e bisogna effettuare nuovamente l’accesso.

Per modificare il timeout è sufficiente modificare il file /etc/ssh/sshd_config digitando

A questo punto aggiungiamo al file le seguenti due righe:

Il primo parametri imposta il server affinché invii pacchetti null ogni 120 secondi al client, mentre il secondo imposta l’interruzione della connessione dopo 720 pacchetti inviati a vuoto. In questo modo la connessione si interromperà dopo 720 x 120 = 86.400 secondi, ossia dopo 24 ore.

Una volta apportate tutte le modifiche salviamo e digitiamo:

In questo modo riavvieremo il servizio SSH.

Vedi articolo

[linux] Cercare testo dentro ai file in modo ricorsivo

Problema: Vogliamo cercare una porzione di testo dentro a tutti i file in una cartella e in tutte le sottocartelle

Soluzione: è sufficiente utilizzare il comando grep, nel modo seguente

Il parametro -R effettuerà una ricerca ricorsiva in tutte le sottocartelle, tra virgolette inseriamo il testo da cercare, il . (punto) indica che la ricerca debba cominciare dalla cartella corrente. 

Possiamo ovviamente indicare altre cartelle con:

 

Vedi articolo

[linux] Aggiungere file manualmente ad una condivisione su ownCloud (sotto Plesk)

Obiettivo: aggiungere un file manualmente nella partizione utente su ownCloud, senza utilizzare l’interfaccia di gestione

Questa è una soluzione molto interessante qualora si preferisca caricare il file, per svariati motivi, con altri meccanismi, diversi dall’interfaccia utente offerta dalla piattaforma ownCloud. Per esempio avevo bisogno di condividere un file zip di 600MB che però prima andava modificato. In tal caso, scaricarlo sul mio computer e caricarlo di nuovo online, con la connessione a 20 Mega, rischiava di risultare eccessivamente lento e macchinoso, quando potevo invece scaricarlo direttamente sul server e modificarlo da terminale.

Come fare allora per metterlo in condivisione?

L’operazione è semplice: anzitutto dobbiamo collocarci nella partizione dati di ownCloud e trovare la cartella, sotto files, dell’utente al quale vogliamo mettere a disposizione il file.

Una volta nella cartella digitiamo:

In questo modo visualizzeremo il dettaglio dei permessi sui file. Annotiamo utente e gruppo che accedono alla partizione.

Spostiamoci nella cartella di installazione di ownCloud, per esempio con:

Quello che ci interessa è la cartella, di ownCloud, contenente l’eseguibile occ.

A questo punto digitiamo il comando per ricostruire tutta la partizione dell’utente all’interno di ownCloud. Attenzione, questo comando reimposterà tutte le configurazioni delle cartelle su ownCloud gestite dall’utente.

Faccio notare che il nome_utente è l’utente proprietario dei file nella partizione linux, per esempio www-data se siamo sotto apache (lo vediamo con il comando precedente).

utente_owncloud è invece l’utente registrato in ownCloud, ovvero lo username dell’utente a cui appartiene la partizione.

In questo caso verrà utilizzato il PHP predefinito configurato all’interno di Linux, qualora voleste (o doveste) utilizzare un’altra versione, sarà sufficiente digitare il percorso per intero; ad esempio sotto Plesk i file binari del PHP7.0 si possono recuperare in questo modo:

Per maggiori informazioni e dettagli consiglio la pagina della documentazione ufficiale di ownCloud.

Vedi articolo

[ubuntu] Scaricare WordPress e scompattarlo nella radice del sito web

Questi comandi si applicano ad un qualsiasi file *.tar.gz che si voglia scaricare e scompattare e poi spostare nella cartella desiderata.

Per scaricare WordPress utilizzerò il link alla versione internazionale

In questo modo scompattiamo il file *.tar.gz nella cartella WordPress e poi spostiamo nella radice tutto il contenuto.

Adesso rimuoviamo il file compresso e la cartella.

Infine ricordiamoci di assegnare i permessi giusti al nostro file, per esempio:

Se stiamo usando Plesk i permessi giusti avranno la forma simile a questa:

Dove al posto dell’UTENTE_SITO_WEB va messo l’utente del dominio.

Vedi articolo

[mysql] Svuotare un database o eliminare tutte le tabelle da terminale (remove o truncate)

Obiettivo: eliminare oppure svuotare tutte le tabelle di un database con un singolo commando da terminale

Questa soluzione è molto utile specialmente se si devono svuotare numerosi database. Abbiamo due possibilità:

1. Eliminare le tabelle (drop)

2. Svuotare le tabelle senza eliminarle (truncate)

In entrambi i casi al posto di USER va messo l’utente del database, al posto di PASSWORD la password dell’utente sul database e al posto di DATABASE il nome del database sul quale vogliamo lavorare.

 

Vedi articolo

[ubuntu] Aggiungere virtual host, ovvero aggiungere dominio su server Apache

Immaginiamo di avere un dominio che punta all’indirizzo IP del nostro server, per esempio petarkaran.it indirizzato su 82.165143.26. Affinché al dominio risponda Apache con un sito web è necessario aggiungere un virtual host opportunamente configurato.

Per farlo anzitutto creiamo la cartella del nostro sito. Spostiamoci su /var/www

E creiamo una cartella, a nostro piacere, che di solito si nomina come il dominio (ma non è obbligatorio):

Affinché Apache ci possa lavorare correttamente è necessario riassegnarle l’utente opportuno, cioè www-data, visto che in questo modo il proprietario della cartella è root:

Adesso creiamo il file di configurazione del virtual host, per farlo spostiamoci su:

A questo punto creiamo il nostro file:

Possiamo anche copiarlo da un file esistente, per esempio:

Qualora avessimo creato il file di sana pianta incolliamo dentro il seguente contenuto base:

Per abilitare il sito digitiamo:

Adesso al nostro dominio, sulla porta 80, risponde Apache con il sito sulla suddetta cartella.

Vedi articolo