







Cette astuce permet de générer un fichier csv directement à partir d’une requête mysql.
1 | SELECT champ1, champ3, champ6, champ7 FROM matable INTO OUTFILE '/var/www/replication/transfert.csv' FIELDS ESCAPED BY '' TERMINATED BY ';'; |
Petit bémol les champs vide sont remplacé par NULL systématiquement.
Perso j’utilise généralement cette astuce dans des bash donc derrière je fais un rechercher/remplacer pour virer les NULL du type :
#conversion des champs NULL en espace sed -i 's/NULL/ /g' /var/www/replication/transfert.csv
Ce tuto permet d’exporter certain champs d’une table mysql et de les importer dans une table sqlite3.
Le dossier replication contiendra 3 fichiers :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #!/bin/sh #definition des variables date=`date "+%F-%H%M%S"` localDir=/var/www/replication dbDir=/var/www/db dbLogin=monlogin dbPswd=monpasswordmysql #suppression du csv rm $localDir/transfert.csv #export mysql en csv mysql --user=$dbLogin --pass=$dbPswd --database=<span style="color: #ff6600;">nombase</span> --execute="select <span style="color: #ff6600;">champ1, champ3, champ6, champ7</span> from <span style="color: #ff6600;">matable</span> INTO OUTFILE '/var/www/replication/transfert.csv' FIELDS ESCAPED BY '' TERMINATED BY ';';" #conversion des champs NULL en espace sed -i 's/NULL/ /g' $localDir/transfert.csv #import du csv dans sqlite3 sqlite3 $dbDir/address_book.db ".read "$localDir"/importer.sql" exit 0 |
1 2 3 4 | DELETE FROM contact; .MOD csv .separator ; .import /var/www/replication/transfert.csv contact |
Il contiendra des données au format csv.
Réfs : http://doc.ubuntu-fr.org/cron
* * * * * [user] [type d'exécution] [fichier || commande]
Il y a cinq champs, séparés par un espace ou une tabulation, dont chacun est paramétré soit par, un nombre, une étoile (*), ou le texte approprié. Les champs sont, dans l’ordre, minute, heure, jour du mois, mois et jour de la semaine. Le mois et le jour de la semaine permettent l’utilisation d’une abréviation (suivant les jours et mois en anglais), telle que jan pour janvier (January) ou thu pour jeudi (Thursday).
*/5 * * * * root /bin/sh /var/www/replication/replication.sh
30 21 * * * root /bin/sh /var/www/replication/replication.sh
* * * * * root /bin/sh /var/www/replication/replication.sh
Petite fonction php pour connaitre l’IP publique de son serveur.
Attention il ne s’agit pas de l’IP du client mais bien celle du serveur. Utile si vous êtes dans un réseau.
/** * function monIP : to know the public IP of server * @param * @return IPv4 address or false */ function monIP(){ preg_match('/((\d{1,3}\.){3}\d{1,3})/', file_get_contents("http://www.monip.org/"), $matches); if(isset($matches[0])) return $matches[0]; else return false; } //Ex : echo monIP();
Créer un fichier ex testip.sh
Copier le code ci-dessous:
1 2 3 4 5 6 | #!/bin/bash wget http://www.monip.org/ 2> /dev/null echo " Adresse ip public est :" perl -ne 'print "$1\n" if m/((\d{1,3}\.){3}\d{1,3})/' < index.html rm index.html |
Pour arrondir des colonnes directement dans la requête utilisez la fonction :
ROUND (matable, précision)
Exemple :
SELECT ROUND(Tarif,5) FROM matable;
En SQL pour comparer par exemple des nombres qui sont stockés dans des colonnes de type vachar, vous risquez d’avoir des problème (surtout avec MS SQL). Une astuce :
CAST (matable AS type_à_utiliser_pour_comparer)
Exemple de type :
ex : soit les colonnes TarifA et TarifB
SELECT * FROM matable WHERE (CAST(TarifA AS REAL) - CAST(TarifB AS REAL))> 0;
Perso pour comparer des nombre je prends le type real pour tous.
Script qui génère un tar.gz du named.conf et du dossier zones tous les jours à 3h du matin et supprime les sauvegardes de plus de 2 mois.
1 | nano /var/www/test/backup01/backup_01.sh |
1 2 3 4 5 6 7 8 9 10 11 | #!/bin/sh #definition des variables dir=/var/www/test/dir01 bkdir=/var/www/test/backup01 date=`date "+%F-%H%M%S"` #suppression des sauvegardes de plus de 2 mois find . -maxdepth 1 -type f -user root -ctime +59 -name "bkp01_*.tar.gz" -exec rm {} \; #generation de la sauvegarde journaliere tar -zcvf $bkdir/bkp01_ns01_$date.tar.gz $dir/ |
nano /etc/crontab
0 3 * * * root /bin/sh /var/www/test/backup01/backup_01.sh
Dans $LIFERAY_HOME/conf/server.xml
Changer la ligne :
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8" />En
<Connector port="80" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8" />