Sponsors

Google
- Epoch Time
A quick idea by Chris Rowe follow me @chrisrowe  •  Help spread the word and tweet about this site  •  What's the Epoch
Visualizzazione post con etichetta debian. Mostra tutti i post
Visualizzazione post con etichetta debian. Mostra tutti i post

Test IMAP command line

Dobbiamo testare che il mailserver funzioni correttamente senza configurare il client di post, possiamo farlo usando il telnet.
In blu i comandi da lanciare e in girigio la risposta del server:


[domenico@lbit-solution ~]$ telnet server.com imap
Trying 185.7.40.62...
Connected to serever.com.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
a1 LOGIN utente password
a1 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS] Logged in
a2 LIST "" "*"
* LIST (\HasNoChildren) "." "Trash"
* LIST (\HasNoChildren) "." "Posta inviata"
* LIST (\HasNoChildren) "." "Sent"
* LIST (\HasNoChildren) "." "Posta indesiderata"
* LIST (\HasNoChildren) "." "Drafts"
* LIST (\HasNoChildren) "." "Posta eliminata"
* LIST (\HasNoChildren) "." "INBOX"
a2 OK List completed.
a3 EXAMINE INBOX
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft $MDNSent)
* OK [PERMANENTFLAGS ()] Read-only mailbox.
* 8 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1404316555] UIDs valid
* OK [UIDNEXT 20] Predicted next UID
* OK [HIGHESTMODSEQ 1] Highest
a3 OK [READ-ONLY] Select completed..
a4 FETCH 1 BODY[]
* 1 FETCH (BODY[] {447}
Return-Path:
X-Original-To: sk
Delivered-To: utente@server.com
Received: from localhost (localhost [127.0.0.1])
        by web.server.com (Postfix) with ESMTP id DB08D7F48B
        for ; Wed,  2 Jul 2014 17:52:17 +0200 (CEST)
Message-Id: <20140702155221 .db08d7f48b="" web.server.com="">
Date: Wed,  2 Jul 2014 17:52:17 +0200 (CEST)
From: utente@server.com
To: undisclosed-recipients:;

welcome to unixmen mail server
)
a4 OK Fetch completed.
a5 LOGOUT
* BYE Logging out
a5 OK Logout completed.
Connection closed by foreign host.
[domenico@lbit-solution ~]$




Controllo temperatura server linux

Esigenza: controllare la temperatura di alcuni server linux.

Due delle macchine che compongono la'infrastuttura di backup sono allocate in una stanza non climatizzata, la temperatura non sale mai a livelli di guardia, comunque è sempre bene tenere sotto controllo la temperatura del processore.

Il comando "sensors" rileva i vari sensori prsenti nell'hardware della macchina, nel mio caso posso sfruttare la temperatura delle CPU, il seguente script prende un solo valore in considerazione. Difficilmente avremo una CPU a 28°C e una a 65°C.

Lo script prende la temperatura dal comando sensor e manipola l'output, ottiene la temperatura esterna tramite ClassMeteo nella pagina di Yahoo, questo per dare evidenza della situazione climatica; un esempio banale è quello i avere una temperatura esterna di 36°C e le CPU a 45°C, lo consideramo normale, ma avere l'esterna a -5°C e l'interna a 65°C dovrebbe farci pensare, soprattutto se le CPU non stanno lavorando, magari ci siamo solo dimenticati l'impianto di riscaldamento acceso e su una temperatura decisamente tropicale.

Effettuato il controllo, cercando la soglia massima otlre la quale deve far partire l'aert è di 55°C, la soglia massima consigliata dal produttore è di 65°C, per qeusto mi prendo un "margine" di 10°C, per dare il tempo di controllare in SSH e di intervenire in sede. 


#!/bin/bash
temp=$(sensors|grep Core|sed -e's/[^0-9.]//g' -e 's/^0//g'|tail -1|awk -F"." '{print $1}')
wget http://it.meteo.yahoo.com/italia/toscana/cerreto-guidi-12846264/
external=$(grep -i "<div temp-c \">" index.html |tr "<" "\n"| grep -i "day-temp-current temp-c"|sed -e 's/[^0-9]//g')
clear
echo "Temperatura interna: $temp gradi centigradi"
echo "Temperatura esterna: $external gradi centigradi"
if [ $temp -gt 55 ]; then

cat > /tmp/chktmp.eml <<DT
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<title>Tempi di apertura sito</title>
<h1 >TEMPERATURA ALTA</h1>
<h2>La temperatura del server <b>$(hostname)</b> &egrave; di <span ><b>$(echo $temp) &deg; C</b></span>.</h2>
<p>La temperatura esterna &egrave; di <b>$(echo $external)&deg; C</b> rilevata da <a href="http://it.meteo.yahoo.com/italia/toscana/cerreto-guidi-12846264/">ClassMeteo</a>.</p>

<br />

<br />
<p>Rispondendo a questa mail contatterai il gruppo di supporto LBiT soluzioni informatiche.</p>
<p>Mail inviata da $(hostname).</p>

DT
(cat <<EOCAT
Subject: ALLARME TEMPERATURA $(echo $hostnama) $(echo $temp)
MIME-Version: 1.0E
Content-Type: text/html
Content-Disposition: inline
From:$(hostname).lbit-solution.it <no-replay@lbit-solution.it>
To: Gruppo Supporto LBiT soluzioni informatiche <supporto@lbit-solution.it>
EOCAT
cat /tmp/chktmp.eml) | /usr/sbin/sendmail supporto@lbit-solution.it amministrazione@lbit-solution.it
fi
rm -f index.htm*

Script Queue mail QMAIL

Come al solito pubblico un articolo dopo aver avuto delle particolari necessità, questa volta dovevo mettere sotto monitoraggio il mail server, qmail.
Succedeva che per quelche motivo il DNS server al quale puntavo non riconosceva alcuni domini, il problema diventa serio quando un cliente prende l'hosting da me e lascia la posta su un'altro provider, configuo dominio e tutto va bene, fin quando perà le mail che partivano dal mio server restavano in coda.
Ci ho messo un po a capire che la mancata consegna della posta fosse dovuta da un record DNS non esatto.
Modificando il file /etc/resolv.conf e mettendo in testa il DNS di google tutto filava liscio.
Vista la brutta esperienza, considerando che gran parte dell'hosting offerto ospita siti di commercio elettronico, o comunque aziendiali, ho deciso di mettere un semplice script che possa avvisarmi quanso c'è coda e quando le mail non vengono processate.


G4PLAY

#!/bin/bash

# Verifico le mail in CODA e in CODA NON PROCESSATE

# SE LA CODA (Q) E' MAGGIORE DI 1 E LA

# CODA NON PREOCESSATA (QNP) MAGGIORE DI 0

# INVIO UNA MAIL IN FORMATO HTML



DOMINIO="lbit-solution.it"

DESTINATARIO="supporto"

NOMEDEST="Supporto LBiT"

DIR="/var/monitoraggio/script"



# CODA ATTIVA

/var/qmail/bin/qmail-qstat |grep -v not|awk '{print $4}' > $DIR/queue



# MAIL IN CODA NON PROCESSATE

/var/qmail/bin/qmail-qstat |grep -i not|awk '{print $8}' > $DIR/queuen



Q=`cat $DIR/queue`

QNP=`cat $DIR/queuen`

if [ $(cat $DIR/queue) -gt "1" ] || [ $(cat $DIR/queuen) -gt "0" ]

then

cat > /tmp/alertQueue.html <<DT

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="content-type" content="text/html; charset=windows-1250">

<title>Alert filesystem</title>

</head>

<body>

<h1 >MAIL IN CODA VERIFICARE IL MAIL SERVER Q=$Q QNP=$QNP</h1>

<h3>Attenzione, il mail server non riesce a smaltire o a consegnare alcune mail </h3>

<p><a href="http://www.lbit-solution.it/monitoraggio/index.php">Pagina di monitoraggio</a></p>



<br />

Ci sono <b>$Q</b> mail in coda e <b>$QNP</b> mail non processate. <br />

<br />

<p>

Di seguito le mail in coda:<br />

$( /var/qmail/bin/qmail-qread|tr -d '\011'|sed -e :a -e '$!N;s/\nremote//;ta' -e 'P;D'|sed -e 's/</mittente: /g' -e 's/>/ destinatario:/g' | while read queue; do

echo "$queue <br />"

done)

</p>

<br />



<h5><a href="http://www.lbit-solution.it">Mail send by LBiT soluzioni informatiche</a></h5>



</body>

</html>

DT



(cat <<EOCAT

Subject: [$(hostname)] Queue Mali Alert Q $Q QNP $QNP

MIME-Version: 1.0

Content-Type: text/html

Content-Disposition: inline

From:$(hostname) <no-replay@$DOMINIO>

Reply-To:$NOMEDEST<$DESTINATARIO@$DOMINIO>

EOCAT

cat /tmp/alertQueue.html) | /usr/sbin/sendmail supporto@lbit-solution.it

rm -f /tmp/alertQueue.html



fi

Finito lo script è stato messo in crontab e gira ogni 5 minuti, devo dire che diversi provider esterni hanno dei tempi lentissimi nel ricevere la posta, questo banale script mi consente di offrire un servizio migliore e di accorgermi di eventuali problemi prima del cliente.

Script controllo filesystem

Negli ultimi mesi non ho postato nessun articolo, non per voglia ma per tempo.
Riprendo degli argomenti che volevo affrontare nei mesi scorsi ma non ho potuto, il controllo dei dischi con alert mail.
Come al solito nulla di complicato, scriviamo uno script che controlla lo spazio disco e, se inferiore ad una data percentuale, provvede ad in inviare una mail in formato HTML, nel contenuto della mail ci sarà anche il link ad una pagina di gestione per sistemi con IP DINAMICI.

Ecco il codice:

1 #!/bin/bash
2 # SCRIPT ELSAMU VPS
3 # FILESYSTEM /media/160 GIGA
4 ### CONFIG ####
5 FSCHK="/var/www/vhosts"
6 DSCHK="/dev/vzfs"
7 WEBPAGE=""
8 rm -f index.html
9 INTIP="`/sbin/ifconfig eth0 |grep -i inet|head -1|awk '{print $2}'|sed -e 's/addr://g'`"
10 EXTIP="`wget http://www.indirizzo-ip.com/;grep -i TITLE index.html |awk '{print $3}'|sed -e 's/<\/TITLE>//g'`"
11 SPACE=`df -h $DSCHK|awk '{print $5}'|tail -1|sed -e 's/%//g'`
12
13 #### INIZIO SCRIPT
14
15 if [ $SPACE -gt 85 ]
16   then
17 cat > /tmp/alert.html <<DT
18 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
19 <html>
20 <head>
21 <meta http-equiv="content-type" content="text/html; charset=windows-1250">
22 <title>Alert filesystem</title>
23 </head>
24 <body>
25 <h1 style="color: red">RISCHIO FILESYSTEM FULL</h1>
26 <h3>ATTENZIONE FILESYSTEM $SPACE %</h3>
27 <p>HOSTNAME: <b>`hostname`</b></p>
28 <p>PUBBLIC IP: <b>$EXTIP</b></p>
29 <p><a href=`echo "\"http://$EXTIP$WEBPAGE\""`>WEB  PAGE INFO SERVER </p></h5>
30
31
32 <p> <b>STATO FILESYSTEM:</b><br />
33 $(df -h $DSCHK|while read line;
34 do echo "$line <br />"
35 done) </p>
36
37 <p><b>LA DIRECTORY $FSCHK OCCUPA:</b><br />
38 $(du -sh $FSCHK|tail -1)
39 </p>
40
41 <p> <b>STATO FILESYSTEM GENERALE:</b><br />
42 $(df -h|while read line;
43 do echo "$line <br />"
44 done)  </p>
45
46 <br />
47 <h5><a href="http://www.lbit-solution.it">Mail send by LBiT soluzioni informatiche</a></h5>
48 </body>
49 </html>
50
51
52 DT
53
54 (cat <<EOCAT
55 Subject: [ELSAMU-VPS] File System Alert $SPACE
56 MIME-Version: 1.0
57 Content-Type: text/html
58 Content-Disposition: inline
59 EOCAT
60 cat /tmp/alert.html) | /usr/sbin/sendmail supporto@lbit-solution.it
61   rm -f /tmp/alert.html
62   rm -f index.html
63 echo "[$(date +'%F %H:%M:%S')] Filesystem alert - $(df -h $DSCHK|awk '{print $5}'|tail -1|sed -e 's/%//g')% in uso" >> /var/log/chkdsk.log
64 else
65 echo "[$(date +'%F %H:%M:%S')] Filesystem nella norma - $(df -h $DSCHK|awk '{print $5}'|tail -1|sed -e 's/%//g')% in uso" >> /var/log/chkdsk.log
66 fi
67
 


Ora basta mettere in crontab lo script e sperare che il disco non si saturi mai:
00 * * * * /var/script/chkdisk.sh

Per personalizzare lo script basta cambiare le variabili alla riga 5, 6 e7 e la percentuale oltre la quale deve partire la mail a riga 15; alla riga 60 troviamo invece l'indirizzo al quale inviare la mail.

Buon compleanno GOOGLE



Buon compleanno big G, oggi compie 13 anni di gloriosa vita, credo che ben pochi progetti in rete abbiano avuto una vita cosi lunga.
Nasce come motore di ricerca e ora "alberga" nei nostri telefoni cellulari, ci dice dove andare snobbando il Tom Tom, archivia i nostri documenti, la posta, ci aiuta realizzare i siti, ci fa navigare con CHROME, ospita i nostri blog, possiamo videochiamare, ecc... Ma quante cose fa? TUTTO! E per ora dopo Buzz e arriva GOOGLE +1, il social network che farà tremare FACEBOOK.

Auguroni alla società numero 1

Vecchio COMMODORE 64

Comando LFTP per upload - download directory tramite FTP

Tempo fa avevo postato l'articolo su come effettaure il backup di un intero sito tramite il comando "lftp", una cosa facile e comoda, avere i bck su una riga senza ausilio di script.
Per fare l'upload? Certo basterebbe fare "man lftp" ma io mio ozio (virtù degli informatici) mi porta a postarlo cosi non devo leggere!!!

UPLOAD DIRECTORY TRAMITE LFTP:
domenico@elsamu-zm:~$ lftp -c 'open ftp.photogulp.it; user mioaccount miapassword; mirror --verbose --reverse -e /home/domenico/wordpress/ www.photogulp.it/blog; quit'

DOWNLOAD DIRECTORY TRAMITE LFTP:
domenico@elsamu-zm:~$ lftp -c 'open store.lbit-solution.it; user mioaccount miapassword; mirror --verbose -e www.lbit-solution.it/ /home/domenico/backup/www.lbit-solution.it/; quit' 

Tutto qui, per chi ha diversi siti fare uno script e metterlo in crontab è una buona soluzione per effettuare un backup.

PHP calcola lo spazio di MYSQL

Una semplice paginetta PHP per calcolare lo spazio occupato dai nostri DB MYSQL. Posto il codice al quale basta sostituire i propri valori.

<?php
print "\n";
print "CALCOLO DEL DATABASE DB_NAME LBiT-solution.it\n";
$conn = mysql_connect('127.0.0.1', 'USERNAME', 'PASSWORD');
mysql_select_db('DB_NAME');
$sql = "SELECT table_schema \"Data Base Name\", SUM( data_length + index_length ) /1024 / 1024 "\Data Base Size in MB\", SUM( data_free ) /1024 /1024 "\Free Space in MB\"\n"
. "FROM information_schema.TABLES\n"
. "GROUP BY table_schema\n"
. "LIMIT 0 , 30";
$result = mysql_query($sql);
while ($array = mysql_fetch_array($result))
{
print "<p align\="left\">Data Base Name: ".$array['Data Base Name']." Size in MB: ".$array['Data Base Size in MB']."</p>";
}
print "\n";
print "\n";
print "CALCOLO DEL DATABASE DB_NAME PHOTOGULP.it\n";
$conn = mysql_connect('127.0.0.1', 'USERNAME', 'PASSWORD');
mysql_select_db('DB_NAME');
$sql = "SELECT table_schema \"Data Base Name\", SUM( data_length + index_length ) /1024 / 1024 "\Data Base Size in MB\", SUM( data_free ) /1024 /1024 "\Free Space in MB\"\n"
. "FROM information_schema.TABLES\n"
. "GROUP BY table_schema\n"
. "LIMIT 0 , 30";
$result = mysql_query($sql);
while ($array = mysql_fetch_array($result))
{
print "<p align\="left\">Data Base Name: ".$array['Data Base Name']." Size in MB: ".$array['Data Base Size in MB']."</p>";
}
?>

La pagina potrebbe impiegarci diverso tempo, questo varia dalle dimensioni del DB. Buona navigazione.

Teamviewer e android

Per la gioia dei possesori di andorid ora è disponibile "TeamViewer", ecco la mail ricevuta dalla loro newsletter:


Logo TeamViewer

TeamViewer App per Android
Android e TeamViewer, un'accoppiata vincente! L'accesso al Vostro computer in ufficio o a casa, fornendo assistenza e accedendo da remoto in tempo reale ai computer non presidiati, non è mai stato così facile: la TeamViewer App è la soluzione ideale per chi desidera l'accesso remoto.
Grafica TeamViewer

Buongiorno,

Immaginate di poter svolgere in ogni momento le attività importanti del computer da remoto, dal Vostro smartphone o tablet: la nuova TeamViewer App per i dispositivi Android (smartphone e tablet) è la soluzione ideale. Pensate ad una soluzione da eseguire insieme a Windows sul Vostro dispositivo Android, gratuita per gli utenti non commerciali.

Grazie a TeamViewer sarete in grado di collegarvi facilmente ai computer remoti, accedere e modificare i file o addirittura effettuare un riavvio remoto. L'App è compatibile con tutti i principali sistemi operativi.

Curiosi? Scaricate l'App direttamente dal nostro sito web, oppure, in modo ancora più semplice: eseguite la scansione del codice QR riportato qui di seguito mediante fotocamera e Scanner App per avviare il download.

Codice QR per scaricare la TeamView App per Android
Nota: il download è diretto. Prima di scaricare l'App, potrebbe essere necessario modificare le impostazioni di Android come segue: Impostazioni - Impostazioni applicazioni - Sorgenti sconosciute (abilita)

Se si desidera utilizzare l'App in un contesto aziendale, dopo la prova occorre attivare un codice di licenza valido. In alcune licenze TeamViewer l'App per Android è inclusa.
Ulteriori informazioni

Non dimenticate che per gli utenti privati la versione integrale di TeamViewer e la TeamViewer App per Android sono completamente gratuite e disponibili per il download sul nostro sito web.

Nico Taormina
Il Vostro team TeamViewer

Backup tramite FTP

Un sistema comodo per effettuare i backup con l'FTP, ad esempio potremmo salvare giornalmente il nostro sito scaricandolo dal server del provider alla nostra machina linux di casa.
Il comando che andiamo ad usare è "lftp", un potente client ftp da riga di comando, questo ci consente di effettuare il backup con una sola riga, senza creare script.

Per i sistemi debian based possiamo installarlo con l'apt:


apt-get install lftp

Installato lftp la sintassi da usare è semplice:

lftp -v -c 'open miosito.it; user 777@aruba.it 7uusdceb96; mirror -e www.miosito.it/ /home/domenico/backup/www.miosito.it/; quit' &

Mysql Multimaster - SCRIPT

Uno script bash per riallineare la configurazione dei server mysql in modalità multimaster; questo perchè i miei due server non sempre sono in connessione tra loro ed è capitato di non avere le repliche attive. Questo a portato ad avere disallineamento tra le due istanze.
SCRIPT mysql_MM.sh

#/bin/bash
# PRIMO SERVER
MM1=10.10.216.167
USER1=topolino
PASSWORD1=topolino
userDB="root"
pwdDB="toor"
# SECONDO SERVER
MM2=
10.10.216.168
USER2=paperino
PASSWORD2=paperino
userDB2="root"
pwdDB2="toor"

echo "SHOW MASTER STATUS;" > showmaster.sql

# CONFIGURAZIONE SERVER 15.1.1.1
filebin=`mysql -h $MM2 -u $userDB2 -p$pwdDB2 <showmaster.sql |grep -i mysql-bin|awk '{print $1}'`
position=`mysql -h $MM2 -u $userDB2 -p$pwdDB2 <showmaster.sql |grep -i mysql-bin|awk '{print $2}'`
cat > MMmysql.sql << DT
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='$MM2', MASTER_USER='$USER1', MASTER_PASSWORD='$PASSWORD1', MASTER_LOG_FILE='$filebin', MASTER_LOG_POS=$position;
START SLAVE;
DT
mysql -h $MM1 -u $userDB -p$pwdDB <MMmysql.sql


# CONFIGURAZIONE SERVER 15.1.1.3
filebin2=`mysql -h $MM1 -u $userDB -p$pwdDB <showmaster.sql|grep -i mysql-bin|awk '{print $1}'`
position2=`mysql -h $MM1 -u $userDB -p$pwdDB <showmaster.sql |grep -i mysql-bin|awk '{print $2}'`
cat > MMmysql2.sql << DT
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='$MM1', MASTER_USER='$USER1', MASTER_PASSWORD='$PASSWORD2', MASTER_LOG_FILE='$filebin2', MASTER_LOG_POS=$position2;
START SLAVE;
DT
mysql -h $MM2 -u $userDB2 -p$pwdDB2 <MMmysql2.sql
sleep 2
echo "SHOW SLAVE STATUS\G;" > showSlave.sql
date > mysqlMM.log
echo "CMD MYSQL PER $MM1">>mysqlMM.log
cat MMmysql.sql >> mysqlMM.log
echo "CMD MYSQL PER $MM2" >> mysqlMM.log
cat MMmysql2.sql >> mysqlMM.log
echo "" >> mysqlMM.log
mysql -h $MM2 -u $userDB2 -p$pwdDB2 <showSlave.sql>> mysqlMM.log
mysql -h $MM1 -u $userDB -p$pwdDB <showSlave.sql>> mysqlMM.log

rm showmaster.sql
rm MMmysql.sql
rm MMmysql2.sql
rm showSlave.sql

Su uno dei due server ho invce inserito nel crontab uno script bash che mi pubblica una pagina web con lo stato dei due server mysql multimaster (sempre che siano raggiugnibili!)


root@elsamu-zm:/home/domenico/Script# cat mysqlHTML.sh
#!/bin/bash
date > /var/www/mysql.html
echo "<br>" >> /var/www/mysql.html
fortune >> /var/www/mysql.html
echo "<br>" >> /var/www/mysql.html
echo " 15.1.1.1" >> /var/www/mysql.html
mysql -h 15.1.1.1 -u root -ptoor --html </home/domenico/Script/mysql_status.sql >> /var/www/mysql.html
echo " 15.1.1.3" >> /var/www/mysql.html
mysql -h 15.1.1.3 -u root -ptoor --html </home/domenico/Script/mysql_status.sql >> /var/www/mysql.html

E questo è lo script sql che contiene i 3 comandi utili per vedere lo stato dei multimaster

root@elsamu-zm:/home/domenico/Script# cat mysql_status.sql
SHOW MASTER STATUS;
SHOW PROCESSLIST;
SHOW SLAVE STATUS\G;

root@elsamu-zm:/home/domenico/Script#

Recuperare la password di root MYSQL

Oggi il simpatico collega laureando in ING informatica si è perso la password dell'utente root di MYSQL. Il cambio password è piu semplice di quanto possa sembrare, posto i semplici comandi da lanciare:

Per iniziare fermiamo MYSQL, su LINUX con /etc/init.d/mysql stop mentre su WINDOWS dalla finestra SERIVZI

mysqld --skip-grant-tables --user=root &

Nel caso di WINDOWS non inserire la e "&" commerciale

mysql
USE mysql
UPDATE user
SET password=password("topolino“)
WHERE user=”root”;
flush privileges;
exit

pkill mysqld

Nel caso di WINDOWS basta premere CTRL C^ NELLA FINESTRA DOS

ps -ef|grep -i mysqld

Verifichiamo che il demone mysql non sia attivo, a questo punto avviamolo.

/etc/init.d/mysql start

Ovviamente

Multimaster MYSQL

La necessità ora è cambiata, il server che in precedenza era configurato come SLAVE e quindi in sola lettura ora dovrà essere MASTER, così facendo passiamo dalla configurazione MASTER-SLAVE alla MULTIMASTER. Le info per la prima configurazione sono nel precedente post.

Andiamo ad editare i file di configurazione dei server mysql e aggiungiamo queste entry:

Server 15.1.1.1 (EX SLAVE):
auto_increment_increment = 2
auto_increment_offset = 2

Server 15.1.1.3 (EX MASTER) :
auto_increment_increment = 2
auto_increment_offset = 1

cosi facendo i file di configurazione saranno i seguenti:

SERVER 15.1.1.1

server-id = 2
auto_increment_increment = 2
auto_increment_offset = 2
master-host=15.1.1.3
master-user=repl_user
master-password=password
log-slave-updates
replicate-same-server-id = 0
master-connect-retry=60
replicate-do-db=invoicex
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M

SERVER 15.1.1.3

server-id = 1
auto_increment_increment = 2
auto_increment_offset = 1
master-host=15.1.1.1
master-user=repl_user
master-password=password
log-slave-updates
replicate-same-server-id = 0
replicate-do-db=invoicex
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
binlog_do_db = invoicex


Andiamo a creare l'utenza per la replica sul server 15.1.1.1:


GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%' IDENTIFIED BY 'dcrd1980';

Sempre dal server 15.1.1.3 restartiamo il demone mysql e andiamo a leggere su quale log sta scrivendo:


mysql -u root -p

mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000011 | 40827 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)


Ora spostiamoci sul server 15.1.1.3 e attiviamo la replica:


CHANGE MASTER TO
MASTER_HOST='15.1.1.3',
MASTER_USER='repl_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000011',
MASTER_LOG_POS=40827;

START SLAVE

I server sono ora in modalità MULTIMASTER, possiamo scrivere su entrambi i DB e avremo sempre i dati aggiornati disponibili.

Replicare i dati mysql MASTER-SLAVE

Questo articolo è una guida per replicare i dati tra due database mysql, nasce dalla necessità di avere un DB in locale (MASTER) e un DB remoto (SLAVE). Il master è un notebook con un software gestionale, essendo in una rete privata protetta non ha la possibilità di collegarsi al DB presente in un'altro ufficio (sede B dove risiederà lo SLAVE); altri utenti presenti nell'ufficio B devono accedere in lettura al DB.
Procederemo configurando il servizio mysql dell'ufficio B come SLAVE e quello del notebook come MASTER, la connessione avverrà tramite VPN. In questo modo ovunque sia il notebook l'utente avrà sempre i dati aggiornati essendo lui il master, anche se non avrà a disposizione una connessione dati, quando il PC entrerà in VPN l'istanza SLAVE aggiornerà i dati rendedoli disponibili.

Per preparare i server sono necessarie le seguenti operazioni:

OPERAZIONI DA ESEUIRE SUL SERVER MASTER (IP VPN 15.1.1.3)

Aggiungere un utente con privilegi di replica, lanciando la query
mysql -u root -p
GRANT REPLICATION SLAVE ON *.* TO 'replicauser'@'%' IDENTIFIED BY 'password';


Per aumentare la sicurezza modificare il campo host (%) indicando un IP o un hostname specifico

attivare i log binari in my.cnf (ed eventualmente escludere o includere i db desiderati) e assicurarsi di indicare che il server sarà il master; le righe interessate sono le seguenti:

mysql -u root -p

[mysqld]
server-id = 1
log-bin = /var/log/mysql/mysql-bin.log
max_binlog_size = 104857600
binlog-do-db = nomeDB
binlog-ignore-db = test


bloccare le tabelle da scrittura per impedirne la modifica con la query

FLUSH TABLES WITH READ LOCK;

NB: non disconnettere il client da cui si esegue questo comando, altrimenti il blocco da scrittura viene disabilitato. Questo passo è molto importante e serve per allineare i database prima di iniziare la replica vera e propria

fare una copia del database sorgente con mysqldump
sqldump nomeDB -u root -p > file_dump.sql

Lanciare la query in un nuovo terminale e segnarsi la Posizione e il file di log in uso.
SHOW MASTER STATUS;

risultato query:

+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000294 | 4905684 | invoicex | |
+------------------+----------+--------------+------------------+
1 row in set (0,00 sec)

Ora possiamo sbloccare il MASTER

UNLOCK TABLES;

OPERAZIONI DA ESEGUIRE SULLO SLAVE (IP VPN 15.1.1.1)

Creare il database
mysql -u root -p
create database invoicex;


Importare il database (o meglio i database) salvati con il seguente comando

mysql nomeDB -u root -p < file_dump.sql

Verificare che nel file my.cnf ci sia la entry "server-id=2"

CHANGE MASTER TO
MASTER_HOST='15.1.1.3',
MASTER_USER='replicauser',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000294',
MASTER_LOG_POS=4905684;

START SLAVE;


Verificare il corretto funzionamento della configurazione con i comandi:


SHOW MASTER STATUS;
SHOW PROCESSLIST;
SHOW SLAVE STATUS\G;


Ora la replica è pronta, ogni qual volta si aggancia al MASTER preleva le informazioni per replicare i dati, ovviamente in raltime.
Questa soluzione non è adatta ad una grande mole di dati, attualmente il DB è usato per gestire un negozio.

Spostare un DB mysql

Spostare un DB da un server ad un'altro non è un'operazione poi cosi complessa, prima di procedere assicurarsi di avere le credenziali di root e il servizi SSH attivo su uno dei due server (va bene anche ftp)

Accedere alla macchina da dismettere e con lanciare il seguente comando:

mysqldump DB_da_spostare -u root -pPassword > file_DB_dump.sql

ottenuto il dump del db ora copiamolo nel nuovo server:

scp file_DB_dump.sql root@10.10.0.120:/tmp

rimanendo sul server da dismettere lanciamo il seguete comando:

ssh root@10.10.0.120 " mysqladmin create DB_da_spostare -u root -pPassword; cd /tmp; mysql DB_da_spostare -u root -pPassword < file_DB_dump.sql"


Facendo il riepilogo le operazioni sono le seguenti:
Dump del DB:
mysqldump DB_da_spostare -u root -pPassword > file_DB_dump.sql
Creazione database da importare:
mysqladmin create DB_da_spostare -u root -pPassword
Importazione database:
mysql DB_da_spostare -u root -pPassword < file_DB_dump.sql

Google Redesigned



Segnalo un componente aggiuntivo per rendere la grafica dei servizi google (posta, documenti, calendario, ecc...) ancora più accattivanti:

https://addons.mozilla.org/it/firefox/addon/8434/
http://www.globexdesigns.com/products/gr/?page=welcome

Rivoulzione Informatica

Una grande scoperta cambierà il nostro approccio con l'informatica, il modo in cui vediamo il mondo e, soprattutto un innovazione che sfrutta materiali reciclabili al 100%.

Fabio Ghioni e spionaggio Telecom

Nel video andato in onda su Report (RAI 3) Fabio Ghioni alias "OMBRA NERA", questo è uno dei video più interessanti della vicenda Telecomitalia sullo scandalo di sipionaggio.


Internet e la fonia IP hanno raggiunto oramai dei livelli altissimi per qualità, servizi offerti, costi d'esercizio e di manutenzione bassi o addirittura gratuiti.
Un cliente che seguo personalmente mi ha chiesto di abbastargli i costi e ottimizzare la sua struttura telefonica, per la realizzazione del centralino mi sono affidato a free2say.com, esperienza e competenza sono al centro delle loro realizzazioni, della fonia IP e dei centralini ne hanno fatto un'arte! Mi sono trovato molto bene sia io che il cliente.

Potete usufruire del nostro codice promozionale che vi permette di accedere a dei sconti particolari, inserire in fase d'ordine il seguente codice:
phtglp1980

Questa è la pagina dei servizi offerti da free2say.com:

STANZE DI CONFERENZA.
Le tue riunioni con comodo da casa!

conference-call

Con i servizi di conferenza multimediale puoi richiedere una stanza virtuale attiva quando vuoi tu e far collegare tutte le persone con una numerazione pubblica dovunque si trovano.

***
SEGRETERIA VIRTUALE.
66235172_1-Foto-di-LAVORO-DA-CASA

PERSONALIZZA LA TUA SEGRETERIA VIRTUALE E RICEVI LE COMUNICAZIONI TRAMITE EMAIL DOVUNQUE SEI!
Una vera e propria segreteria virtuale completa di messaggi personalizzati, selezioni vocali e ricezione diretta dei messaggi registrati nelle tue caselle di posta elettronica. Scopri quanto è comodo ed economico.

***
CHIAMATE INTERNAZIONALI LOW COST.
1237403379989_mondo

CHIAMA IN TUTTO IL MONDO A COSTI URBANI DIRETTAMENTE DAL TUO CELLULARE O DAL FISSO!
Puoi effettuare chiamate internazionali in mobilità, dal tuo cellulare o dal telefono fisso senza dover spendere una fortuna! Richiedi i nostri servizi di chiamate internazionali per evitare spese pazze e non rinunciare alle tue telefonate.

***
HOSTING DI PBX ASTERISK. SCOPRI I VANTAGGI!
ced_cs

Soluzioni telefoniche complete di hosting PBX Asterisk personalizzati e mantenuti. Affidati a esperti per la gestione del tuo centralino completamente remoto per coprire le sedi e gli uffici della tua azienda. Abbatti inoltre la spesa telefonica!

***
HAI LA NECESSITÀ DI AVERE DEI SERVIZI SPECIFICI?
SCRIVICI E AVRAI NEL PIÙ BREVE TEMPO POSSIBILE UNA RISPOSTA ALLE TUE RICHIESTE.

Mysql - connessioni su IP diversi

Ho la necessità di collegarmi al DB MYSQL del mio portatile da reti differenti e tutte con DHCP, la prima aziendale (dove ovviamente non posso toccare nulla) in classe 10.X.X.X e la seconda in classe 192.X.X.X dove ho staticizzato sul router l'IP 192.168.1.110 per il MAC ADDRESS della scheda di rete wi-fi "eth2". Ovviamente le connssioni non sono tutte in localhost!
Non vorrei ovviamente cambiare ogni volta l'IP ai vari tool o programmi che si connettono al DB e allora ho trovato questa semplice soluzione.

Per prima cosa abilitare MYSQL ad accettare connessioni esterne, per rendere questo possibile accediamo al db con il comando:


mysql -u root -p

e digitiamo la seguente riga dove root è l'utente amministrativo e "password" la password amministrativa:


grant all privileges on *.* to root@'%' identified by 'password' with grant option;

Ora apriamo il file di configurazione (/etc/mysql/my.cnf), commentiamo la riga "skip-external-locking" e commentiamo bind-address:
#skip-external-locking
#bind-address = 192.168.1.110

Restart di MYSQL con
/etc/init.d/mysql restart

Ora è in ascolto sull'IP inserito nel file di configurazione; quando siamo nella rete aziendale abilitiamo un alias sulla scheda di rete locale (almeno non facciamo danni nella rete aziendale):


ifconfig lo:0 192.168.1.110 netmask 255.255.255.0 up


Quest'alias ovviamente al riavvio del sistema andrà perso in modo che al riavvio a casa il PC si collegherà automaticamete alla rete WI-FI con l'interfaccia eth2 e acquisirà l'indirizzo 192.168.1.110, a quel punto i vari PC della rete "domestica" potranno collegarsi al DB senza effettuare nessuna modifica.

La soluzione più facile è quella di lasciare commentato "bind-address = 192.168.1.110" in modo che possiamo accedervi tranquillamente in localhost, unico problemi però, che cosi facendo è accedibile anche dagli altri. Ovvio che alzando un firewall risolviamo il probelma!
LBiT soluzioni informatiche

Link and Search

Solo lei

Solo lei ha quel che voglio

So di esser pronto ed è già da un pò che ci penso ma tutto quel che so è che so bene con lei ma non capisco cosa intende fare dove vorrà arrivare. Non mi ha mai visto prima ma ora al mondo ci siamo solo io e lei, la conosco da un minuto l'ho appena trovata e già l'ho perduta resta una sconosciuta, un mistero e chissà se è vero quel che i suoi occhi mi stanno dicendo di lei, io lo spero e sta volta è per davvero e tutto questo perchè se puoi io so... può lasciarsi andare e l'accompagnerò e domani ti giuro che me ne andrò può lasciarsi andare e l'accompagnerò e poi ti giuro che sparirò...
Solo lei ha quel che voglio e sono io ciò che sta cercando.
Questa notte potrei darle il mondo potrei darle tutto ciò che cerca ciò di cui ha bisogno quindi molla il tipo che è con te o mi perderai, potresti non rivedermi mai più non si sa mai, non sa cosa sta rischiando pensa che stia scherzando ma sono io ciò che sta cercando, no di sicuro l'uomo che è con lei perchè questa serata spero l'abbia solo accompagnata, mi servon due minuti ma ti assicuro che verrà e questa notte durerà un'eternità, e il mondo gira solo perchè ora c'è lei solo per il suo sguardo che mi fa prendere il volo, muoio, la conosco appena e già vivo per ogni suo respiro ti giuro non ti prendo in giro e mentre l'ammiro mi accorgo quanto sia stupenda e hai sbagliato se pensi che m'arrenda...
Solo lei ha quel che voglio e sono io ciò che sta cercando.
Il mio intuito mi ha spinto e solo ora capisco perchè come un druido ho il fluido che fa per lei non conta quanto sia durato ma che sia stato qualcosa per cui vale la pena d'aver vissuto e quindi lascio che la storia abbia il suo corso naturale ma ti prego fammi capire perchè sto male perchè so che domani io mi sveglierò e sarò ancor del suo profumo intriso dal suo sorriso ucciso ma io sarò con la mia donna e lei col suo uomo visto che ho scoperto che è l'unica lei è la sola....
Solo lei ha quel che voglio e sono io ciò che sta cercando.

top