Dev

To content | To menu | To search

Thursday, October 10 2013

Kate regex find/replace

Find: \$\{string\['(.*)'\]\}  
Replace:<?=sml('\1')?>  
Mode: Regular expression
[V] Selection Only (just incase)

Friday, January 4 2013

Way to avoid ssh connection timeout & freezing of terminal tab

sshd (the server) closes the connection if it doesn't hear anything from the client for a while. You can tell your client to send a sign-of-life signal to the server once in a while.

The configuration for this is in the file /.ssh/config.

Host remotehost
  HostName remotehost.com
  ServerAliveInterval 240

This is what I have in my ~/.ssh/config.

To enable it for all hosts use:

Host *
  ServerAliveInterval 240

Also make sure to run chmod 600 ~/.ssh/config, because the config file must not be world-readable.

Thursday, January 3 2013

SVN Command

Ajouter tout les nouveaux fichiers

svn add * --force

Ignorer des fichiers
You don’t svn:ignore a file.
You put an svn:ignore property on the directory to ignore that filename pattern!

svn propset svn:ignore '*' logs/

Ignorerun seul fichier

svn propset svn:ignore importmail.log .

Supprimer tout les ignores

svn propdel svn:ignore -R

Voir les fichers ignores

svn status --no-ignore

Monday, June 11 2012

Enable SCP on Synology

en cas d'erreur avec libcrypto (Ou un message "scp command not found") :

cd /lib/
ln -s libcrypto.so libcrypto.so.0.9.8

Source : http://www.avoid.org/?p=52
Source : http://korben.info/installer-ipkg-sur-synology.html

Monday, February 13 2012

Utilisation de rsync

rsync params SOURCE DESTINATION

Exemple1 - Synchronise un folder local dans un folder local :

rsync -rltDuv  /path/vers/source /path/vers/destination

Exemple2 - Synchronise un folder distant (ssh) dans un folder local :

rsync -avz --ignore-errors --force --stats --delete --backup --backup-dir=/dirname/subdir/dir-deleted  -e ssh root@domain.ltd:/remotedirname/remotedir /dirname/subdir/dir

Exemple3 - Synchronise un folder local dans un folder distant (ssh) :

rsync -av --ignore-errors --force --stats --delete --backup --backup-dir=/remotedirname/remotedir/dir-deleted /dirname/subdir/dir --filter "- diskstation/" --filter "- .VirtualBox/" --filter "- .Trash/" --filter "- .thumbnails/" --filter "- lost+found/" --filter "- .cache/" -e ssh root@domain.ltd/remotedirname/remotedir/


-a, --archive mode archivage; identique à -rlptgoD (pas -H)
-v, --verbose plus loquace
-z, --compress transfert en compressant les données

--ignore-errors efface même s'il y a eu des erreurs E/S
--force force la suppression de répertoires même non-vides
--stats affiche quelques statistiques de transfert de fichiers

--delete efface les fichiers qui n'existent pas chez l'émetteur

backup effectue des sauvegardes (cf. suffix et --backup-dir)
--backup-dir=RÉP effectue des sauvegardes dans le répertoire RÉP

-f, --filter=RÈGLE ajoute une règle de filtrage de fichier

-e, --rsh=COMMANDE spécifie un shell distant

http://www.demongeot.biz/tutos/Rsync.html
http://www.delafond.org/traducmanfr/man/man1/rsync.1.html

Thursday, February 9 2012

Installer rapidement l'essentiel sur kubuntu

Creer un petit script (nano installPC.sh, Copy/Paste, et chmod + x installPC.sh) avec le code ci apres :

#! /bin/bash
 
lsb_release -a
 
echo "active le depot parter dans /etc/apt/sources.list"
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
sudo sed -i "/^# deb .*partner/ s/^# //" /etc/apt/sources.list
sudo sed -i "/^# deb-src .*partner/ s/^# //" /etc/apt/sources.list
 
echo "Update & Clean apt"
sudo apt-get update
sudo apt-get clean
 
echo "Install Apps"
sudo apt-get install  -y ssh
sudo apt-get install  -y openssh-server
sudo apt-get install  -y x11vnc
sudo apt-get install  -y thunderbird thunderbird-locale-f
sudo apt-get install  -y firefox
sudo apt-get install  -y gimp
#plugin pour gwenview
sudo apt-get install  -y kipi-plugins
sudo apt-get install  -y amsn
sudo apt-get install  -y skype
 
 
echo "Update system"
sudo apt-get upgrade

Tuesday, January 24 2012

Configurer les webcams HEDEN VisionCam sur un NAS Synology

Il faut donc se connecter au Syno en Telnet ou SSH avec le compte "root" puis éditer le fichier

/usr/syno/etc.defaults/camera_model.conf

Et faire les modifications suivantes

Attention ces modifications sont données sans garantiev
Rajouter à la fin de la section camera*list le texte suivant

Heden*VisionCam=Heden*generic
Heden*VisionCamv2=Heden*genericv2


Puis rajouter à la fin du fichier

[Heden*generic]
port=80
video source="videostream.cgi"
tilt up="/decoder_control.cgi?command=0&onestep=1"
tilt down="/decoder_control.cgi?command=2&onestep=1"
pan left="/decoder_control.cgi?command=4&onestep=1"
pan right="/decoder_control.cgi?command=6&onestep=1"
home pos="/decoder_control.cgi?command=25"
%%%
[Heden*genericv2]
port=80
video source="videostream.cgi"
tilt up="/decoder_control.cgi?command=2&onestep=1"
tilt down="/decoder_control.cgi?command=0&onestep=1"
pan left="/decoder_control.cgi?command=6&onestep=1"
pan right="/decoder_control.cgi?command=4&onestep=1"
home pos="/decoder_control.cgi?command=25"

Tuesday, December 13 2011

UTF-8 PHP MySQL tooltip

Pour ne pas avoir de probleme avec l'encodage (charset) sur un site web :

- Champ en utf8 dans la db
- Enregistrer tout les fichiers (php, xml, ...) en utf8

<?php
 
mb_internal_encoding("UTF-8");
mysql_query("SET NAMES 'UTF8'"); //apres la connection mysql
header('Content-type: text/html; charset=UTF-8'); // envoyer correctement l'entete
 
?>

Tuesday, December 6 2011

VNC & SSH

Pour connecter un client a un server VNC avec SSH il faut :

1. Installer les paquets : x11vnc openssh-server
2. Creer un petit bash script :

#!/bin/sh
ssh -f -L 5901:localhost:5900 user@domain.dyndns.org -p 222\
        x11vnc -safer -localhost -nopw -once -display :0 \
        && sleep 5 \
        && krdc localhost:5901

et voila !!

(Principe : on redirige via SSH (port 222 ici) le port 5900 distant vers le port 5901 local & on connect le client VNC sur ce port)

(Pour ne pas taper le passe SSH a chaque fois voir : http://blog.passiondelphi.net/index.php?post/2010/10/08/Se-connecter-par-ssh-en-%C3%A9changeant-des-certificats)
source: https://help.ubuntu.com/community/VNC

Wednesday, April 27 2011

MySQL tooltip

kill a query

mysqladmin -u root -pyourpassword kill 674362

http://beginner-sql-tutorial.com/sql-query-tuning.htm

SELECT name
FROM employee
WHERE (salary, age ) = (SELECT MAX (salary), MAX (age)
FROM employee_details)
AND dept = 'Electronics';

Changer le charsert sur toutes les tables d'une db
http://muzso.hu/2008/04/09/how-to-change-the-character-set-and-or-collation-in-a-mysql-database-for-all-tables-and-c

SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') as stmt
FROM `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` = 'database_name'
ORDER BY 1

Thursday, December 9 2010

Scripts JQuery interessants

http://www.datatables.net/

> fait un grid entierement customisable

http://gettopup.com/

> popup en jquery

http://digitalbush.com/projects/masked-input-plugin/

> pour faire des mask dans les input text

Wednesday, October 13 2010

Quelques commande linux

-= Recuperer les uuid des disk pour le montage fstab =-
ls -l /dev/disk/by-uuid/

-= partitionner les partitions =-
sudo apt-get install gparted

-= pour gerer le ntfs =-
sudo apt-get install ntfsprogs

-= Mounter disk reseau smb =-
sudo mount -t cifs -o username=virux,password=******,iocharset=utf8 //192.168.1.250/datas /home/virux/diskstation/datas

-= Mounter le disk externe =-
sudo mount -t ntfs-3g /dev/sdf1 /home/virux/datas/usbhdd

-= Mounter la cle usb =-
sudo mount /dev/sdd1 /home/virux/datas/usbkey
ou
sudo mount -t vfat /dev/sdd1 /home/virux/datas/usbkey
sudo mount -t usbfs /dev/sdd1 /home/virux/datas/usbkey

-= rechargement du ~/.bashrc =-
source ~/.bashrc

-= Connaitre la version ubuntu =-
lsb_release -a

-= Convertir le charset (Probleme des accents) =-
convmv --notest -r -f latin1 -t utf-8 *

-= Demarrer un process X via SSH =-
root@srv:$ export DISPLAY=:0
root@srv:$ nohup xeyes &

I'd do it this way if it was a console application:

  1. Log on to the server/computer using ssh.
2. Start the application
3. Press ctrl+z
4. Execute the "bg" command to put the application in the background


Your application should now run as a background application and you can log off. If you ever need to get the application back you can use the "fg" command.

The "bg" and "fg" are shell commands, but you also find script implementations existing externally.

-= supprimer les repertoire vide =-
find -depth -type d -empty -exec rmdir {} \;

-= supprimer des fichiers dans les sous directeory =-
find -name "filename.ext" -delete
find -name "*.tmp" -delete

-= Travailler avec des fichier par lot =-
find -name "*.001" -exec lxsplit -j {} \;
find -name "*.001" -exec unrar e {} \;

-= Rsync via ssh =-
rsync -avz -e ssh root@194.146.225.28:/home/web/backup/ /volume1/backuphome/sd

Friday, October 8 2010

GoogleTranslateWrapper : Traduire automatiquement avec Google

Google language translation php wrapper

<?php
require_once('googleTranslate.class.php');
 
$gt = new GoogleTranslateWrapper();
 
/* Translate text from one language to another */
$test = 'hello';
 
/* language detection */
print_r($gt->detectLanguage($test));
 
/* Translate */
echo $gt->translate($test, "fr", "en");
 
/* Was translation successful */
echo $gt->isSuccess();
?>

Download : http://www.codediesel.com/downloads/GoogleTranslate
Project hosting : http://code.google.com/p/google-translate-php-wrapper
Plus d'info http://www.codediesel.com/php/google-translation-php-wrapper

Synology : Comment gerer Crontab ?

En fait, si cron existe bien, seul crontab n’existe pas. Il faut donc éditer le fichier de planification de cron à la main avec vi.

Pour éditer celui ci, faite ceci:

vi /etc/crontab

Dans le fichier qui s’ouvre, on retrouve le format classique de crontab.

#minute hour    mday    month   wday    who     command
12      5       *       *       0       root    /bin/rm -f /var/log/*.html
0       0       *       *       *       root    /usr/sbin/ntpdate -b 195.83.247.17
30      2       *       *       *       root    /usr/syno/bin/synousbbkp

Il faut bien faire attention à la casse, au chemin d’accès complets et aux tabulations. Prenez modèle sur ce qui existe déjà. Un fois cela terminé, quitter vi.

Comme crontab n’a pas été utilisé, il faut avertir cron qu’une mise à jour a été effectuée. Pour cela, il faut relancer cron au moyen des commandes suivantes:

/usr/syno/etc.defaults/rc.d/S04crond.sh stop
/usr/syno/etc.defaults/rc.d/S04crond.sh start

Se connecter par ssh en échangeant des certificats

aptitude install ssh

puis

Il nous faut créer une clé qui va permettre au PC « local » de s’identifier sur le PC « distant » par un échange de certificats (sans intervention humaine)

sur le PC local (user normal dans un terminal)

ssh-keygen -t dsa
or
ssh-keygen -t rsa

cela va créer une clé qui sera stockée dans le dossier /home/votre-user/.ssh , puis il nous faut exporter la clé par ssh (vous pouvez constater que je n’utilise pas le super-utilisateur)

ssh-copy-id -i ~/.ssh/id_dsa.pub user@server.com
or
ssh-copy-id -i ~/.ssh/id_rsa.pub user@server.com

si ssh-copy-id n'est pas disponible (sur mon synology par exemple)
il faut utilise ssh pour ajouter à /home/user/.ssh/authorized_keys sur la machine distante le contenu de /home/user/.ssh/id_dsa.pub (en créant le fichier, et le répertoire, le cas échéant).

#> echo "ssh-dss AAAAB3NzaC1kc3MAAACBAJZcpNiRPcdejXjp04YmKtYm/CRmdoctDYm5zjmJOTyQXtTDKFq1kGM3+0G3pQVSB1zp+qDBOVO8Io
mok6uK432sRh6xuWH0ugp2iYUoxNQEq4lQkxTcN+tVyQHPm4M+wQyT0PkvSSTtJJSG4ATnBkludgsj2PfcqcaJPIPJRwaRAAAAFQCBnzPJOxYWy+Y9..... user@machine.local" >> ~/.ssh/authorized_keys

ou

cat ~/.ssh/id_rsa.pub | ssh user@servername 'tee -a .ssh/authorized_keys'

ou voici un petit script :

#/bin/sh
# This script generates an ssl key for the local machine,
# and copies this key to the remote server.
# This allows a specific user to be granted a passwordless login
# from a specific client machine.
# 2012 Virux
 
# RSA keys may be subject to export restrictions
 
if [ ! -n "$1" ]
then
echo "Usage: `basename $0` user@server.com [port]"
exit
fi
 
if [ -n "$2" ]
then
PORT="-p $2"
echo "Using port : $2"
else
PORT=""
fi
 
if [ ! -e ~/.ssh/id_rsa.pub ]
then
echo "Generating RSA key"
ssh-keygen -t rsa
fi
 
IDPUB=`cat ~/.ssh/id_rsa.pub`
 
 
echo "Appending local SSH pub_key to $1"
echo "Please enter password for remote account:"
ssh -f $1 $PORT "echo $IDPUB >> ~/.ssh/authorized_keys"

si le port n'est pas le standard (22), il faut utiliser

ssh-copy-id -i ~/.ssh/id_dsa.pub -p PORT  user@server.com

après cela si vous faites la commande suivante, vous pourrez vous connecter sans mot de passe, essayez là

ssh user@server.com

si le pc local peut se connecter sans mot de passe, nous avons gagné ;)

si il y a un changement de clef il faut la virer avec la commande :

$ ssh-keygen -R {server.name.com}

et refaire l'operation