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 informatica. Mostra tutti i post
Visualizzazione post con etichetta informatica. Mostra tutti i post

MySQL UDF Perl Regular Expression


Leggi l'articolo sul BLOG LBiT:
http://blog.lbit-solution.it/2013/11/mysql-udf-perl-regular-expression/

Nel realizzare nuovi scraper per g4play.it Emanuele si è reso conto che la nostra istanza MySQL  non supporta le espressioni regolari, a lui non servono solo query di ricerca ma manipolazioni di dati complesse. Con estrema semplicità mi chiede di installare la libreria lib_mysqludf_preg, non è complicato, ma neanche così banale. Iniziamo subito con l'installazione dei pacchetti che ci serviranno:

  [root@mysqllbit lib_mysqludf_preg]# yum install pcre pcre-devel [root@mysqllbit lib_mysqludf_preg]# yum install make gcc gcc-c++ [root@mysqllbit lib_mysqludf_preg]# yum install mysql-devel

 Questo per evitare tutti gli errori relativi al compilatore, a pcre e mysql. Scarichiamo il paccheto da GitHub:

[root@mysqllbit lib_mysqludf_preg]# wget https://github.com/mysqludf/lib_mysqludf_preg/archive/testing.zip
[root@mysqllbit lib_mysqludf_preg]# unzip testing.zip

  ora lanciamo il configuratore

[root@mysqllbit lib_mysqludf_preg]# ./configure

  ci siamo risparmiati gli errori avendo installato preventivamente i pacchetti, l'unico messaggio a video con la parola ERROR è

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
  Possiamo rilassarci, avendo settato la password di root è normale che non riesca ad accedere. Ora installiamo:

[root@mysqllbit lib_mysqludf_preg]# make
[root@mysqllbit lib_mysqludf_preg]# make install
[root@mysqllbit lib_mysqludf_preg]# make installdb

ERROR 1548 (HY000) at line 5: Cannot load from mysql.proc. The table is probably corrupted
make: *** [uninstalldb] Error 1

  Sull'ultimo passaggio ho ricevuto errore di tabella corrotta, per questo ho dovuto prima "sistemare" le tabelle MySQL e poi rilanciare il make installdb

[root@mysqllbit lib_mysqludf_preg]# make installdb
/usr/bin/mysql -p <./uninstalldb.sql 
Enter password: 
cat installdb.sql | sed 's/\.so/.dll/g' >installdb_win.sql
if test -f .libs/lib_mysqludf_preg.dll; then  \
                /usr/bin/mysql -p <./installdb_win.sql; \
        else \
                /usr/bin/mysql -p <./installdb.sql;\
        fi
Enter password:
[root@mysqllbit lib_mysqludf_preg]# make test
cd test; make test
make[1]: Entering directory `/usr/local/lib/lib_mysqludf_preg/test'
/usr/bin/mysqltest -p --include=create_testdb.sql  --result-f...
Enter password:
ok
/usr/bin/mysqltest -p --include=create_testdb.sql  --result-f...
Enter password:
ok
/usr/bin/mysqltest -p --include=create_testdb.sql  --result-f...
Enter password:
ok
/usr/bin/mysqltest -p --include=create_testdb.sql  --result-fi...
Enter password:
ok
/usr/bin/mysqltest -p --include=create_testdb.sql  --result-f...
Enter password:
ok
/usr/bin/mysqltest -p --include=create_testdb.sql  --result-f...
Enter password:
ok
make[1]: Leaving directory `/usr/local/lib/lib_mysqludf_preg/test'

Finito, ora Emanuele potrà usare le espressioni regolari per manipolare i dati di g4play.it.

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*

Bash e mio figlio

Mio figlio non mi lascia lavorare, ha ragione prima dobbiamo giocare con loro e poi pensare al nostro lavoro.
Il pinguino mi aiuta a distrarlo mentre finisco alcune pratiche urgenti:

sleep 1;clear;echo ciao SAMUEL|cowsay ; sleep 1;clear;echo "ALLONTANATSI DALLA LINEA GIALLA"|cowsay ;sleep 2;sl;sl;clear;echo "TRENO IN TRANSITO AL BINARIO 1"|cowsay ;sleep 2; sl -F; sl -l;sl -e

Se poi gli mettiamo un loop abbiamo un nuovo gioco!
  while true; do sleep 1;clear;echo ciao SAMUEL|cowsay ; sleep 1;clear;echo "ALLONTANATSI DALLA LINEA GIALLA"|cowsay ;sleep 2;sl;sl;clear;echo "TRENO IN TRANSITO AL BINARIO 1"|cowsay ;sleep 2; sl -F; sl -l;sl -e; done

Un simpatico treno che attraversa il nostro schermo, una mucca controllore! Con un pò di fantasia possiamo farlo diventare un vero gioco, magari con frasi randomiche.

URL SEO OPENCART ARUBA

Uno delle prime operazioni da fare per ottimizzare il nostro sito di e-commerce è creare delle URL SEO-friendly, ma usando OpenCart su server Linux Aruba potremo avere dei problemini, ovvero ricevere la schermata di ERROR 500 e sito DOWN!

Niente di preoccupante, OpenCart prevede di base la possibilità di usare dei link SEO friendly, o URL semplici, in effetti nel pacchetto d'installazione troviamo un file .htaccess.txt, ed è proprio lui che sui server Aruba ci fa restituire error 500.

Per risolvere questo basta modificare il file .htaccess lasciando solo queste entry:

#Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^(.*)$ ./index.php/$1 [L]
RewriteRule ^(.*)\?*$ index.php?_route_=$1 [L,QSA]


Ricordiamoci dal pannello amministrativo, su SISTEMA/IMPOSTAZIONI/SERVER, e spostiamo il flag su SI di Usa URL SEO.

Per ogni categoria, prodotto e pagina dobbiamo valorizzare il campo URL SEO come nell'esempio:
processori_amd per la categoria Processori AMD, cosi verrà costruito un link del tipo
http://www.tuttoperilpc.it/Informatica


Rotazione banner con PHP

Oggi posto un pratico e banale codice PHP per inserire nelle proprie pagine dei banner a rotazione.
Questo torna comodo quando non vogliamo riempire le pagine del nostro sito con decine di banner, inseriamo il codice sottoriportato e avremo la rotazione delle nostre campagne pubblicitarie, un po come google adsense. Io personalmente uso diversi siti di affiliazione e nel caso specifico ZANOX non ha questa comoda funzione, a questo ci aiuta PHP.

Apportare modifiche è semplice, settare quanti banner vogliamo inserire alla riga 2 sostituendo il valore 9 con qello desiderato; ogni elsif è un banner e il codice va inserito tra gli apici della "print", semplice.

Il risultato è la rotazione di banner randomici ad ogni visualizzazione della pagina, quando avrò tempo vorrei inserire del codice java per farli ruotare senza il refresh della pagina in visualizzazione.


CODICE PHP:
<?php
$random = random(1,9);
if ($random == 1) //Commento per Codice 1
print '<a target="_blank" href="http://ad.zanox.com/ppc/?19502843C1575357854T"><img src="http://ad.zanox.com/ppv/?19502843C1575357854" align="bottom" width="468" height="60" border="0" hspace="1" alt="InMediolanum Direct - Image Banner 468 x 60"></a>';

elseif ($random == 2) //Commento per Codice 2
print '<a target="_blank" href="http://ad.zanox.com/ppc/?18982653C558409180T"><img src="http://ad.zanox.com/ppv/?18982653C558409180" align="bottom" width="468" height="60" border="0" hspace="1" alt="Prenota online i voli economici eDreams!"></a>';

elseif ($random == 3) 
print '<a target="_blank" href="http://ad.zanox.com/ppc/?19502859C320315674T"><img src="http://ad.zanox.com/ppv/?19502859C320315674" align="bottom" width="468" height="60" border="0" hspace="1" alt="New Direct Image Banner 468x60"></a>';

elseif ($random == 4) 
print '<img src="http://ad.zanox.com/ppv/?19502861C750326682" align="bottom" width="1" height="1" border="0" hspace="1"><script language="javascript" src="http://ad.zanox.com/ppv/images/programs/flash_load/flash_loader_ng.js"></script><script type="text/javascript">zxFlash("http://static.it.groupon-content.net/affiliate/dynamic_banner/cid_dynamic_banner_groupon_468x60_plain_it_IT_zanox.swf", "", 468, 60, "opaque", "http://ad.zanox.com/ppc/?19502861C750326682&ULP=", "XXX");</script>';

elseif ($random == 5) 
print '<a target="_blank" href="http://ad.zanox.com/ppc/?19502866C1336435436T"><img src="http://ad.zanox.com/ppv/?19502866C1336435436" align="bottom" width="468" height="60" border="0" hspace="1" alt="New Image Banner 468 x 60"></a>';

elseif ($random == 6) 
print '<a target="_blank" href="http://ad.zanox.com/ppc/?19502867C1668787694T"><img src="http://ad.zanox.com/ppv/?19502867C1668787694" align="bottom" border="0" hspace="1" alt="promozione Pr&#65533;natal"></a>';

elseif ($random == 7)
print '<img src="http://ad.zanox.com/ppv/?19502868C1938169590" align="bottom" width="1" height="1" border="0" hspace="1"><script src="http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn=rsb&c=28&pli=2292040&PluID=0&w=468&h=60&ord=[timestamp]&ucm=true&ncu=http://ad.zanox.com/ppc/%3F19502868C1938169590%26ULP%3D"></script><noscript><a target="_blank" href="http://ad.zanox.com/ppc/?19502868C1938169590&ULP=http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn=brd&FlightID=2292040&Page=&PluID=0&Pos=6023" target="_blank"><img src="http://bs.serving-sys.com/BurstingPipe/adServer.bs?cn=bsr&FlightID=2292040&Page=&PluID=0&Pos=6023" border=0 width=468 height=60></a></noscript>';

elseif ($random == 8)
print '<a target="_blank" href="http://ad.zanox.com/ppc/?19502874C1192392898T"><img src="http://ad.zanox.com/ppv/?19502874C1192392898" align="bottom" width="468" height="60" border="0" hspace="1" alt="468x60.gif"></a>';

elseif ($random == 9)
print '<a target="_blank" href="http://ad.zanox.com/ppc/?19502873C1243644210T"><img src="http://ad.zanox.com/ppv/?19502873C1243644210" align="bottom" border="0" hspace="1" alt="7 mega 468x60"></a>';
?>

Titolo con link al sito originale wordpress

Oggi volevo modificare i titoli del sito PHOTOGULP.it inserendo dei link.
PHOTOGULP.it sia un blog che un aggregatore di notizie, prende i post da altre fonti autorizzate e quindi volevo inserire il link del post originale nel titolo del post presente su POTOGULP.it.
Questo è possibile se usiamo il plugin per sindacare i post, ecco il codice da sostituire nel file single.php:




         <!-- TITOLO CON PERMALINK-->

        <div id="post-<?php the_ID(); ?>" <?php if (function_exists("post_class")) post_class(); else print 'class="post"'; ?>>

           <?php if (!get_post_meta($post->ID, 'hide_title', true)): ?><h2 class="post-title">

           <?php if (is_syndicated()) : ?>

               <a href="<?php the_syndication_permalink(); ?>" target="_blank"><?php endif; ?><?php the_title(); ?>

                   <?php if (is_syndicated()) : ?></a><?php endif; ?>

               </h2><?php endif; ?>

         <!-- TITOLO CON PERMALINK-->


Sostituirlo ovviamente al codice già presente altrimenti ci ritroveremo con due titoli.

Rimuovere Babylon da FIrefox

LBiT soluzioni informatiche Quel maledetto BABYLON non se ne vuole andare dal nostro PC!
Intanto da Pannello di Controllo andiamo a disinstallare tutto quello che troviamo con il nome Babylon. Fatto questo mi sono ritrovato la pagina di Babylon search ogni qual volta apro  un nuovo tab su Firefox. Risolvere il problema è più facile di quanto possiamo immaginare (dopo che ci ho sbattuto una serata!):
Andiamo su START e da ESEGUI per XP o nel box di ricerca per VISTA e 7 digitiamo %appdata%
a questo punto si apre una cartella, navighiamo fino ad arrivare al seguente percorso:
 C:\Users\Photogulp\AppData\Roaming\Mozilla\Firefox\Profiles\a3g1dzd2.default\extensions

qui torviamo la cartella ffxtlbr@babylon.com, eliminiamola ed abbiamo finito!



Aggiorno al guida comletando la funzione di ricerca dalla barra degli indirizzi di FIREFOX e CHROME, cosi facendo elimineremo del tutto conduit Babylon.

Per Firefox andare nella barra degli infirizzi e digitare about:config, il borwser di Mozilla vi chiederà di "promettere di fare attenzione", voi accettate!

Su filtro mettete Babylon e modificate la chiave da true a false, modificate anche la URL di ricerca mettendo quella di google:
http://www.google.it/search?aq=f&gcx=c&ix=c1&sourceid=chrome&ie=UTF-8&q=




Ora sempre su filtro mettete "conduit" e andate a sostituire tutte le url che trovate con quella di google, cosi facendo ache se Babylon non lo avete rimosso correttamente almeno le ricerche andranno sempre su google.



Guida per google CHROME, qui è ancora più semplice, basta andare sul simbolo della chiave inglese, poi opzioni e su Ricerca selezioniamo Google da menù a tendina.

Finito, spero di esservi stato d'aiuto.

AGGIORNO IL POST CON IL COMMENTO DI UNA ANONIMO:
 Ho risolto quest'ultimo fastidio da about:config, filtro Babylon e per ogni voce in grassetto ho premuto il tasto destro selezionando la voce ripristina. Spero che ciò sia utile per qualcuno. SPQR

AGGIORNO IL POST CON UN'ALTRO COMMENTO DI UN ANONIMO:
per chi ha Firefox infetto c'è un modo ancora più veloce per risolvere l'infezione del browser: utilizzare il componente aggiuntivo SearchReset, si installa rimettendovi a posto tutti i valori modificati da Babylon o altri programmi e si disinstalla da solo. In pratica non dovete fare nulla a parte installarlo e tutto torna a posto (ricerca nella barra degli indirizzi,home page ecc). è una mano santa... Io ormai lo uso ogni volta e in 3 secondi rimetto a posto firefox. Poi ovviamente dovete disintallare queste schifezze dal pc con il solito pannello di controllo per rimuoverle del tutto. Il link: https://addons.mozilla.org/en-us/firefox/addon/searchreset/

LBiT soluzioni informatiche

START ORACLE

Sul blog non ho mai parlato di ORACLE, forse per le mie scarse conoscenze :)

In questo articolo posto le basi: come eseguire lo start di oracle. Potrebbe sembrare una cosa banale, ma se vi dovesse capitare di farlo e non ne avete la competenza non è il massimo.

Accediamo al server con utenze oracle, se non ne conosciamo la password possiamo sempre accedere come root e poi effettuare un
su - oracle

Ora accediamo ad oracle:

sqlplus /nolog

a questo punto diventiamo DBA

connect / as sysdba

e ora startiamo ORACLE

STARTUP

perfetto ora possiamo uscire con exit e far partire il listner con il camndo:
listner start

Tutto qui, pochi semplici comandi che ci eviatano molte rogne.

Aruba down, server farm in fiamme

Causa principio di incendio nella serverfarm principale si è attivato l'energit poweroff togliendo energia alla struttura.

Oggi mi sono ritrovato con i siti down e cercando in rete ho trovato quanto sopra riportato, nella server farm di Aruba si è verificato un principio di incendio, per prevenire danni maggiori sono stati spenti in automatico tutti i servers, non voglio immaginare quante web-app, siti e-commerce, blog, servizi e tutto quello che giri nella loro farm siano down.
Aruba è considerato il principale provider italiano per domini registrati.
Insomma oggi parecchi siti italiani sono off-line.

Aruba ha aperto un account twitter dove seguire tutto quello che sta succedendo: Arubait

Elenco i domini per i quali ho lavorato off-line:
www.photogulp.it
www.lbit-solution.it
store.lbit-solution.it
www.labottegadelpc.it
www.impattoverbale.it
www.voicomenoi.com
dtricarico.photogulp.net
blog.photogulp.net

CPU "incollata" al dissipatore


Oggi nel sostituire una scheda madre ho trovato qualche piccola difficoltà: il dissipatore non si smontava, ovvero la CPU si è "incollata" e quindi era impossibile rimuoverlo dalla sua sede.
Il processore in questione è un AMD 5000 socket AM2.
Per rimuovere il dissipatore ho dovuto girare la scheda e allentare i supporti in modo da fare pressione, mai troppa altrimenti si piegano i piedini della CPU, e far uscire il processore e dissipatore stesso.

Perfetto, ora abbiamo il dissipatore passivo con CPU incollata, la rimozione "forzata" non serve a nulla quindi dobbiamo intervenire con molta calma e pazienza.
Prendiamo un phon e riscaldiamo il dissapore nella parte inferiore senza mandare il getto di aria calda sul core, questo danneggerebbe in modo irreparabile la CPU; proviamo pe circa un minuto e rimuoviamo il processore, se ancora non si muove riscaldiamo per un altro minuto mandando il getto anche sulle alette del dissipatore in modo da ridurre la sua funzione e di squagliare per induzione la pasta termica.








Scollata la CPU dal dissipatore dobbiamo controllare che tutti i piedini siano allineati, qui si che serve pazienza e buona vista!

Qualora torvassimo un disallineamento dobbiamo cercare di riportare tutto in posizione facendo molta attenzione, i piedini infatti sono molto delicati e si danneggiano senza troppa forza, per questo preferisco riallinearli con un taglierino dando poca pressione. Non importa che siano riallineate al 100%, comunque il socket ha dei fori in cui ospitarli .

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

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

OpenSolaris e VirtualBox

Montare su OpenSolaris le directory condivise di VirtualBox: procedura VirtualBox a parte per condividere le directory, una volta accesa la virtual machine OpenSolaris aprire un terminale e lanciare ilseguente comando:

pfexec mount -F vboxfs -o uid=101,gid=10 appo /media/share

dove vboxfs è il flesystem condiviso, uid e gid del nostro utente su SunSolaris, "appo" la directory condivisa dal sistema host e "/media/share" il path dove montare il disco.

Lo possiamo montare anche sotto la nostra home directory su OpenSolaris, ovvero:

mkdir /export/home/domenico/share
pfexec mount -F vboxfs -o uid=101,gid=10 appo /export/home/domenico/share

Questi comandi ovviamente si possono usare per montare qualsiasi filesystem condivisi.

Mac-book igienico


Uno scherzetto bastardo fatto al nostro caro amico Andrea di Voip dal Mondo.
Il primo APPLE igienico, rinominato da Simone CESS BOOK....
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