::franek::

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 4 janvier 2012

20:59

Post-it : crontab et %

Une petite astuce concernant crontab que je ne connaissais pas (on apprend tous les jours).

Les caractères % doivent être échappés dans crontab.

Le crontab suivant :

00 19 * * * /chemin/vers/mon/script.sh >/chemin/vers/output-`date +%Y%m%d`.log

ne fonctionnait pas.

J'obtenais une erreur du type :

/bin/sh: Syntax error: EOF in backquote substitution

Après quelques recherches, je suis tombé sur un fil de stackoverflow qui correspondait à mon problème.

Dans crontab, il est nécessaires d'échapper avec un backslash le caractère %. Le contab suivant fonctionne :

00 19 * * * /chemin/vers/mon/script.sh >/chemin/vers/output-`date +\%Y\%m\%d`.log

samedi 31 décembre 2011

11:50

Exporter les bookmarks delicious automatiquement

Un petit script python (mon premier) de fin d'année...

Si comme moi, vous souhaitez conserver les données que vous publiez dans le cloud, voici un petit script permettant d'exporter l'ensemble des bookmarks publiés sur delicious.

Pour exporter automatiquement l'ensemble de vos bookmarks présents sur delicious, vous pouvez utiliser l'API mise à disposition par delicious.

En utilisant quelque chose comme ça :

curl -k --user username:password -o backup.xml -O 'https://api.del.icio.us/v1/posts/all' 

source

Cependant, l'API limite l'export aux 1000 derniers bookmarks.

Pour récupérer la totalité des bookmarks, delicious propose une fonctionnalité d'export depuis l'interface utilisateur qui génère un fichier HTML.

Mon script, qui s'inspire d'un autre script disponible sur github, automatise l'export proposé par delicious depuis l'interface et ajoute simplement la possibilité de passer en paramètre les informations d'identification.

Pour l'utiliser :

git clone git://gist.github.com/1540460.git backup-delicious
cd backup-delicious
python delicious.py -u <username> -p <password> -o delicious.html

Pré-requis :

Vous pourrez ensuite ajouter ce script dans le crontab.

Par exemple :

0 19 * * * /usr/bin/python /directory/to/delicious.py -u <username> -p <password> -o /directory/to/backup/delicious-`date +\%Y\%m\%d`.html

mardi 20 septembre 2011

14:48

Post-it : Synology partage d'un scanner sur le réseau

En branchant son imprimante 2-en-1 (dans mon cas HP PSC-1100 All-in-one) sur un synology (dans mon cas, DS-211+), Il est possible de facilement partager son imprimante sur le réseau.

Le partage du scanner est un peu moins documenté (à moins que votre imprimante all-in-one supporte le protocole MFP). Pour une liste d'imprimantes compatibles avec le Synology, vous pouvez référer à la liste disponible sur le site du constructeur.

Dans notre cas, nous allons devoir bidouiller ("Hackability is fun !"...)

Les tutoriaux suivants sont une bonne base :

On va utiliser sane pour partager le scanner. Par défaut, sane ne dispose pas des drivers HP. Il va donc falloir les installer et lui dire qu'ils ont été installés !

1- Installer, de mémoire, les paquets suivants via ipkg :

$ ipkg install hplip libusb libieee1284 sane-backends xinetd

2- L'astuce dans mon cas est d'ajouter le support des drivers HP à sane :

sudo echo "hpaio" >> /opt/etc/sane.d/dll.conf
sudo echo "hpaio" > /opt/etc/sane.d/dll.d/hplip

3- On vérifie que le scanner est bien reconnu :

sane-find-scanner

Cela doit retourner quelque chose comme :

found USB scanner (vendor=0x03f0 [Hewlett-Packard], product=0x3011 [psc 1100 series]) at libusb:001:003

Si le scanner n'a pas été reconnu, passer votre chemin.

4- Si le scanner a été reconnu, on va vérifier la compatibilité avec sane :

scanimage -L

Cette ligne doit retourner quelque chose comme :

device `hpaio:/usb/psc_1100_series?serial=MY369160GQB0' is a Hewlett-Packard psc_1100_series all-in-one

Si elle ne retourne pas ce type d'information, vérifier la configuration de sane et notamment les fichiers dll.conf et hplip.

Votre scanner devrait fonctionner sur le réseau. Pour qu'il fonctionne sur le réseau, il faut s'assurer de 2-3 petites choses.

Vérifier que dans le fichier /opt/etc/xinetd.conf votre sous-réseau est bien présent :

    only_from = localhost 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16

ainsi que dans le fichier /opt/etc/sane.d/saned.conf :

192.168.0.0/16

Configurer sane

vi /opt/etc/xinetd.d/sane-port

Ajouter :

service sane-port
{
    port = 6566
    socket_type = stream
    wait = no
    user = root
    group = root
    server = /opt/sbin/saned
}

Vérifier que le fichier /etc/services contient bien :

  sane-port         6566/tcp        # SANE network scanner daemon

Vous pouvez ensuite démarrer sane :

/opt/etc/init.d/S10xinetd

Sur le poste client, une seule modification :

sudo vi /etc/sane.d/net.conf

Remplacer # localhost par l'ip de votre serveur.

Depuis votre poste client, scanimage -L devrait renvoyer quelque chose comme :

device `net:<votre ip>:hpaio:/usb/psc_1100_series?serial=MY369160GQB0' is a Hewlett-Packard psc_1100_series all-in-one

Voilà, ce sont quelques notes rapides qui seront peut-être utiles à d'autres.

EDIT Bon, parfois, le scanner n'est pas accessible depuis le client. J'ai résolu ce problème en supprimant le fichier de PID de dbus et en relançant le process dbus :

$ rm /opt/var/run/dbus/pid
$ /opt/etc/init.d/S20dbus start

(source : http://forum.synology.com/enu/viewtopic.php?f=27&t=14801)

vendredi 12 août 2011

14:55

Quelques trucs et astuces concernant git (et git svn)

Une petite liste de trucs et astuces concernant l'utilisation de git (avec svn ou non).

Pour définir l'éditeur par défaut utilisé par git (ici vi) :

$ git config --global core.editor vi

Récupérer l'ensemble du dépôt subversion dans un environnement git :

$ git svn clone -s http://url_depot_svn/ rep-destination/

Resynchroniser le dépôt local (git) avec le dépôt subversion (récupération des tags notamment).

$ git svn fetch

Dans le cas d'une utilisation de git avec subversion, afficher tous les tags et les branches subversion

$ git branch -a

Créer une branche git qui suit les modifications d'une branche subversion

$ git checkout -b local-trunk remotes/trunk

Ici, on crée une branche git local-trunk qui est une copie de remotes/trunk et qui suit ces modifications

Commiter l'ensemble des modifications locales vers le dépôt subversion

$ git svn dcommit

Par défaut, git ne supprime pas les répertoires vides. Il est possible d'indiquer à git de supprimer les répertoires vides dans subversion :

  • option 1, dans le fichier de configuration de git ~/.gitconfig
[svn]
        rmdir = true
  • option 2, lors de l'appel de git svn dcommit :
$ git svn dcommit --rmdir

Disposer d'un diff en couleur (source) :

[core]
        pager = less -FXRS

- page 1 de 9