192.168.0.30:/home/minecraft /media/minecraft nfs defaults,user,auto,noatime 0 0
dimanche, mars 20 2016
aide mémoire bash
Par llwynrt le dimanche, mars 20 2016, 10:11
opération en bash :
echo $((7+4))
condition :
if [ test ] then
fi
comparaisons :
chaînes de caractères :
s1 = s2 s1 matches s2
s1 != s2 s1 does not match s2
s1 < s2
s1 > s2
-n s1 s1 is not null (contains one or more characters)
-z s1 s1 is null
nombres :
-lt (<)
-gt (>)
-le (<=)
-ge (>=)
-eq (==)
-ne (!=)
echo sans saut de ligne :
echo -n
mercredi, février 17 2016
bloquer ip amazonaws
Par llwynrt le mercredi, février 17 2016, 23:03
Télécharger la liste des ip ici : https://ip-ranges.amazonaws.com/ip-ranges.json
cat ip-ranges.json | cut -d[ -f2 | awk -F '"' '{print "deny from", $4 ";" }' | grep "/" > ban_ip_amazon_ws
Le contenu du fichier ban_ip_amazon_ws est à ajouter au fichier .htaccess à la suite de :
order allow,deny
allow from all
jeudi, octobre 1 2015
adapter la hauteur d'un élément html à la résolution de l'écran
Par llwynrt le jeudi, octobre 1 2015, 21:41
<script>
/**
* @author Marie-Lyse Briffaud
* @date 28/09/2015
* ajuste la hauteur de la page pour que le footer soit en bas de page si la hauteur du contenu est insuffisante
*/
/*on recalcule au chargement de la page et au redimensionnement de la fenêtre*/
window.onresize=AdapterDivAResolution;
window.onload=AdapterDivAResolution;
function AdapterDivAResolution() {
/*dimensions de la fenêtre*/
var x_res = window.innerWidth;
var y_res = window.innerHeight;
/*en dessous de 768px de large, l'affichage ne se fait plus sur 3 colonnes
inutile donc d'ajuster la hauteur*/
if(x_res>768){
var header = getHeight(document.getElementById('header'));
var footer = getHeight(document.getElementById('footer'));
var hauteurContenu = getHeight(document.getElementById('contenu'));
var hauteurCalcule = y_res - header - footer;
/*on ajuste la hauteur uniquement si le contenu est plus petit que la place disponible*/
if(hauteurContenu < hauteurCalcule) {
document.getElementById('contenu').style.height = hauteurCalcule + 'px';
}
}
}
function getHeight(obj){
if(obj.offsetHeight)
{return obj.offsetHeight;}
else if(obj.style.pixelHeight)
{return obj.style.pixelHeight;}
}
</script>
vendredi, mars 6 2015
MySQLi et php
Par llwynrt le vendredi, mars 6 2015, 14:52
define('MYSQL_SERVEUR', 'localhost'); define('MYSQL_UTILISATEUR', 'root'); define('MYSQL_MOTDEPASSE', ''); define('MYSQL_BASE', 'test'); //connexion à la base MySQL $mysql = new MySQLi(MYSQL_SERVEUR, MYSQL_UTILISATEUR, MYSQL_MOTDEPASSE, MYSQL_BASE); /* Vérification de la connexion */ if ($mysqli->connect_errno) { die("Echec de la connexion : %s\n", $mysqli->connect_error); } //configuration du charset $mysqli->set_charset("utf8"); //Requête SQL ne retournant pas de résultat (ex: CREATE TABLE, INSERT, UPDATE, etc.) $sql = 'CREATE TABLE IF NOT EXISTS blog (login VARCHAR(64) ,message TEXT ,dateheure DATETIME)'; $mysql->query($sql); $sql = 'INSERT INTO blog (login, message, dateheure) VALUES(\'phpfacile\', \'Tuto MySQL\', NOW())'; $mysql->query($sql); //Requête SQL retournant des résultats (ex: SELECT) $sql = 'SELECT * FROM blog'; $res = $mysql->query($sql); while ($row = $res->fetch_array()) { echo $row['login'].':'.$row['dateheure'].':'.$row['message'].'<br />'."\n"; } //nombre de lignes $res->num_rows; // Se protéger des injections SQL $city = $mysqli->real_escape_string($city); $mysqli->query("INSERT into myCity (Name) VALUES ('$city')"); //Requête préparée $stmt = $mysqli->prepare("INSERT INTO test(id) VALUES (?)"); $stmt->bind_param("i", $id); $stmt->execute(); $stmt->close(); //libération des résultats $res->free(); //déconnexion de la base MySQL $mysql->close(); /*fetch_array() : Le second argument optionnel est une constante indiquant quel type de tableau doit être renvoyé à partir de la ligne de données courante. Les valeurs possibles pour ce paramètre sont les constantes MYSQLI_ASSOC, MYSQLI_NUM, et MYSQLI_BOTH. En utilisant la constante MYSQLI_ASSOC, cette fonction se comportera comme la fonction mysqli_fetch_assoc(), tandis que MYSQLI_NUM la fera agir comme la fonction mysqli_fetch_row(). La constante MYSQLI_BOTH, créera elle un tableau qui sera à la fois associatif et indexé numériquement.*/
mardi, février 17 2015
plowshare4
Par llwynrt le mardi, février 17 2015, 22:13
installer plowshare :
git clone https://code.google.com/p/plowshare/ plowshare4 cd plowshare4 sudo make install
mettre à jour :
cd plowshare4 git pull sudo make install
lundi, décembre 15 2014
concaténer plusieurs fichier mov en mp4 h264 acc
Par llwynrt le lundi, décembre 15 2014, 11:43
mencoder -oac pcm -ovc copy -of avi -o output.avi input1.mov input2.mov
avconv -i 'output.avi' -vcodec libx264 -preset ultrafast -profile:v baseline -acodec aac -strict experimental -r 24 -b 3000k -ar 44100 -ab 59k -s 640x362 'output.mp4'
mardi, septembre 24 2013
installer une imprimante DCP-340CW sur ubuntu
Par llwynrt le mardi, septembre 24 2013, 13:05
extrait de la doc ubuntu
installer les fichiers suivants pour l'impression
sudo brsaneconfig2 -a name=SCANNER_BROTHER model=DCP-340CW ip=192.168.0.102
Pour les versions 64bits, il faut taper la commande suivante :
cp -R /usr/lib64/* /usr/lib
si le scanner n'est pas détecté :
éditer le fichier /lib/udev/rules.d/40-libsane.rules
ajouter les deux lignes suivantes à la fin du fichier, avant«LABEL= "libsane_rules_end"».
# Brother scanners
ATTRS{idVendor}=="04f9", ENV{libsane_matched}="yes"
samedi, mai 19 2012
Changer l’emplacement des boutons de fenêtres
Par llwynrt le samedi, mai 19 2012, 13:36 - Ubuntu
boutons à DROITE :gconftool-2 --set /apps/metacity/general/button_layout --type string "menu:minimize,maximize,close"
boutons à GAUCHE :gconftool-2 --set /apps/metacity/general/button_layout --type string "close,minimize,maximize:"
lundi, juillet 18 2011
aide mémoire : manipuler des bases de données en php
Par llwynrt le lundi, juillet 18 2011, 19:12 - mysql
$db_server = 'localhost';
$db_user = '';
$db_pwd = '';
$db_name = '';
$db_link = mysql_connect($db_server, $db_user, $db_pwd) or exit('Could not connect: ' . mysql_error());
$db = mysql_select_db($db_name, $db_link) or exit('Could not select database: ' . mysql_error());
//sélectionner une table
$res=mysql_query("SELECT * FROM table");
//parcourir les résultats
while ($s=mysql_fetch_object($res))
{echo $s->champs;}
//insérer des données
//modifier des données
$res=mysql_query("UPDATE table SET champs = "value");
mercredi, décembre 1 2010
"UPS mgeups@localhost is unavailable"
Par llwynrt le mercredi, décembre 1 2010, 00:24 - Ubuntu
Ce message indique un problème de droit pour l'utilisateur NUT. Pour y remédier :
sudo adduser nut nut
sudo adduser nut dialout
upsdrvctl start
Trouvé sur la doc d'ubuntu
lundi, novembre 29 2010
aide mémoire
Par llwynrt le lundi, novembre 29 2010, 15:12 - Ubuntu
ln -s nom-du-fichier-reel nom-du-lien-symbolique (attention : chemin absolu pour le fichier réel)
export sql : mysqldump -h host -u user -ppass -rfichier base_de_donnees
import sql : mysql -h host -u user -ppass base_de_donnees < fichier_dump
samedi, août 28 2010
Suppression de la gestion des clés étrangères
Par llwynrt le samedi, août 28 2010, 00:16 - mysql
$req = "SET FOREIGN_KEY_CHECKS = 0";
$result = mysql_query($req) or die('Erreur SQL !'.$sql.''.mysql_error());
lundi, juillet 12 2010
azerty vs bépo
Par llwynrt le lundi, juillet 12 2010, 21:27
devinez lequel est où !
lundi, juin 28 2010
Recette du Schokoladenkuchen
Par llwynrt le lundi, juin 28 2010, 19:22
Le gâteau
Ingrédients :
- 4 œufs
- 4 tasses de sucre
- 250 gr de beurre mou
- 4 tasses de farine
- 1 paquet de levure
- 1 tasse de lait
- 4 cuillères à soupe de cacao
- 100 gr de noix râpée
Mélangez les ingrédients dans l’ordre
Faites cuire le gâteau 50-60 minutes à 175°C.
Le nappage
Faites chauffer au bain marie 100 gr de chocolat avec 75 gr de beurre. Quand le chocolat et beurre sont fondus, mélangez les avec 3 cuillères à soupe de lait et 200 gr de sucre glace.
Laissez le gâteau refroidir et versez le nappage dessus.
Bon appétit !
mardi, mai 25 2010
Mettre à jour dynhost (ovh) en php
Par llwynrt le mardi, mai 25 2010, 14:14
Ovh propose de lier une ip dynamique et un nom de domaine avec dynhost.
Problème, leur logiciel de mise à jour est en python, et moi je veux faire la mise à jour à partir d'un hébergeur sans python …
Après pas mal de recherches, voici mon code en php :
$credentials = "identifiantdynhost:motdepasseovh";
$url = "http://www.ovh.com/nic/update?system=dyndns&hostname=nomdedomaine&myip=ip";
$headers = array(
"User-Agent: ipcheck/0.67",
"Authorization: Basic " . base64_encode($credentials));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data = curl_exec($ch);
if (curl_errno($ch)) print "Error: " . curl_error($ch);
echo $data;
Attention l'identifiant est celui créé pour dynhost, alors que le mot de passe est celui du compte ovh.
lundi, mars 1 2010
sshfs
Par llwynrt le lundi, mars 1 2010, 15:43
sudo sshfs -o idmap=user -o uid=1000 -o gid=1000 -o allow_other lily-framboise@marie-alex.fr:/home/lily-framboise/public_html /home/llwynrt/public_html/
lundi, février 22 2010
éteindre l'écran en console
Par llwynrt le lundi, février 22 2010, 13:48 - eeepc
vbetool dpms off
vendredi, janvier 15 2010
Ligne de commande
Par llwynrt le vendredi, janvier 15 2010, 12:48
Les expressions régulières
- ^ début de ligne
- . un caractère quelconque
- $ fin de ligne
- x* zéro ou plus d'occurrences du caractère x
- x+ une ou plus occurrences du caractère x
- x? une occurrence unique du caractère x
- [...] plage de caractères permis
- [^...] plage de caractères interdits
- \ {n\} pour définir le nombre de répétition n du caractère placé devant
l'expression [a-z][a-z] * cherche les lignes contenant au minimum un caractère en minuscule. [a-z] caractère permis, [a-z]* recherche d'occurrence des lettres permises.
L'expression ^[0-9]\ {4\}$ a pour signification, du début à la fin du fichier $, recherche les nombres[0-9] de 4 chiffres \ {4\}.
grep
- -v affiche les lignes ne contenant pas la chaîne
- -c compte le nombre de lignes contenant la chaîne
- -n chaque ligne contenant la chaîne est numérotée
- -x ligne correspondant exactement à la chaîne
- -l affiche le nom des fichiers qui contiennent la chaîne
Sed
pour GNU sed : sed -i modifie directement le fichier sans affichage sur la sortie standard.substitution :
sed '{/motif/|/regexp/|n }/s/foo/bar/m' <fichier>
sed 's/day/night/' <old >new
sed 's/day/night/' old >new
echo day | sed 's/day/night/'
sed 's/day/night/g'
sed 's/day/night/4'
sed '/baz/s/foo/bar/g'
sed '/baz/!s/foo/bar/g'
sed '18 s/sed/SED/'
ajouter une ligne :
sed '{/motif/|/regexp/|n}{i|a|c}\<Texte à insérer>' <fichier>
- l'insertion avant (avec le paramètre "i" comme insertion)
- l'ajout après (avec le paramètre "a" comme après)
- le remplacement (avec le paramètre "c" comme changement)
effacer une ligne :
sed '{[/]<n>|<chaîne>|<regex>[/]}d' <fichier>
sed '3d' efface la 3 ligne
sed '$d' efface la dernière ligne
sed '1,10d' efface les 10 premières lignes
sed '/^$/d' efface les lignes videshttp://www.commentcamarche.net/faq/478-sed
awk
awk [-Fs] [-v variable] [-f fichier de commandes] 'program' fichier-F Spécifie les séparateurs de champs.
-v Définie une variable utilisée à l'intérieur du programme.
-f Les commandes sont lu à partir d'un fichier.
awk -F ":" '{ $2 = "" ; print $0 }' /etc/passwd |
imprime chaque ligne du fichier /etc/passwd après avoir effacé le deuxième champs |
awk 'END {print NR}' fichier |
imprime le nombre total de lignes du fichiers |
awk '{print $NF}' fichier |
imprime le dernier champs de chaque ligne |
who | awk '{print $1,$5}' |
imprime le login et le temps de connexion. |
awk 'length($0)>75 {print}' fichier |
imprime les lignes de plus de 75 caractères. (print équivaut à print $0) |
« billets précédents - page 1 de 5