Completion pour OpenVZ (ZSH)
Voici un début de complétion pour OpenVZ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
#compdef vzctl _vzctl() { _arguments '--quiet[Quiet]' '--verbose[Verbose output]' '*::OpenVZ command:_OpenVZ_command' } (( $+functions[_OpenVZ_command] )) || _OpenVZ_command() { (($+_OpenVZ_cmds )) || _OpenVZ_cmds=( 'start:Start a VE' 'restart:Restart a VE' 'status:Show VE status' 'stop:Stop a VE' 'enter:Enter into a VE' 'mount:Mount VE private area' 'umount:Umount VE private area' 'set:Set various VE parameters' 'destroy:Destroy a zone' 'runscript:Run specified shell script into a VE' 'create:Create a new VE area' 'exec:Execute' 'exec2:Execute' ) if (( CURRENT == 1 )); then _describe -t commands 'OpenVZ command' _OpenVZ_cmds else local curcontext="$curcontext" cmd="${_OpenVZ_cmds[(r)$words[1]:*]%%:*}" if (( $#cmd )); then curcontext="${curcontext%:*:*}:OpenVZ-${cmd}:" _call_function ret _OpenVZ_$cmd || _message 'no more arguments' else _message "Unknow OpenVZ command: $words[1]" fi return ret fi } ### Utility functions ### OpenVZ functions (( $+functions[_OpenVZ_set] )) || _OpenVZ_set(){ #runvms=(${${(M)${(f)"$(vzlist -H -a -o veid,status,hostname)"}:#[[:blank:]]##[[:digit:]]*running*}/(#b)[[:blank:]]##([[:digit:]]##)[[:blank:]]##[[:alpha:]]##[[:blank:]]##/$match[1]:}) runvms=(${${(M)${(f)"$(vzlist -H -a -o veid,status,hostname)"}:#[[:blank:]]##[[:digit:]]**}/(#b)[[:blank:]]##([[:digit:]]##)[[:blank:]]##[[:alpha:]]##[[:blank:]]##/$match[1]:}) _arguments -s '1:veid:(($runvms))' '--onboot[yes|no]:onboot:(yes no)' '--root' '--userpasswd[user:passwd]' '--save' } (( $+functions[_OpenVZ_start] )) || _OpenVZ_start(){ runvms=(${${(M)${(f)"$(vzlist -H -a -o veid,status,hostname)"}:#[[:blank:]]##[[:digit:]]*stopped*}/(#b)[[:blank:]]##([[:digit:]]##)[[:blank:]]##[[:alpha:]]##[[:blank:]]##/$match[1]:}) _arguments -s '1:veid:(($runvms))' } (( $+functions[_OpenVZ_restart] )) || _OpenVZ_restart(){ runvms=(${${(M)${(f)"$(vzlist -H -a -o veid,status,hostname)"}:#[[:blank:]]##[[:digit:]]*stopped*}/(#b)[[:blank:]]##([[:digit:]]##)[[:blank:]]##[[:alpha:]]##[[:blank:]]##/$match[1]:}) _arguments -s '1:veid:(($runvms))' } (( $+functions[_OpenVZ_stop] )) || _OpenVZ_stop(){ runvms=(${${(M)${(f)"$(vzlist -H -a -o veid,status,hostname)"}:#[[:blank:]]##[[:digit:]]*running*}/(#b)[[:blank:]]##([[:digit:]]##)[[:blank:]]##[[:alpha:]]##[[:blank:]]##/$match[1]:}) _arguments -s '1:veid:(($runvms))' } (( $+functions[_OpenVZ_reload] )) || _OpenVZ_reload(){ runvms=(${${(M)${(f)"$(vzlist -H -a -o veid,status,hostname)"}:#[[:blank:]]##[[:digit:]]*running*}/(#b)[[:blank:]]##([[:digit:]]##)[[:blank:]]##[[:alpha:]]##[[:blank:]]##/$match[1]:}) _arguments -s '1:veid:(($runvms))' } (( $+functions[_OpenVZ_exec] )) || _OpenVZ_exec(){ } (( $+functions[_OpenVZ_exec2] )) || _OpenVZ_exec2(){ } (( $+functions[_OpenVZ_enter] )) || _OpenVZ_enter(){ runvms=(${${(M)${(f)"$(vzlist -H -a -o veid,status,hostname)"}:#[[:blank:]]##[[:digit:]]*running*}/(#b)[[:blank:]]##([[:digit:]]##)[[:blank:]]##[[:alpha:]]##[[:blank:]]##/$match[1]:}) _arguments -s '1:veid:(($runvms))' } |
Au fur et à mesure, le script sera mis à jour.
NeDi, version 1.0.4
Une nouvelle version de Network Discovery a vu le jour. Un menu: Correction de bugs Amélioration de l’interaction avec rrdtool Il est aussi possible de télécharger un ISO avec NeDi basé sur OpenBSD (4.4) Site Web : http://www.nedi.ch/ ISO : http://walker-family.org/NeDiO44.iso
Firefox, Open Containing Folder
Since I had installed kde-graphic package, the behaviour of the button “Open Containing Folder” has changed. Instead of use Nautilus to open the “Containing Folder”, it was GwenView which displays the folder. Displaying a folder with GwenView in a gnome environment, is a real nightmare and usefulness stuff. To solve the issue, I ‘ve look after something wrong in /usr/share/applications/ with [bash]grep -R gwenview *[/bash] and finally I’ve found the following entry: [bash]/usr/share/applications/mimeinfo.cache:inode/directory=gnome-nautilus-folder-handler.desktop;kde4-gwenview.desktop;[/bash] I decided to remove the second entry and the behavior by default is reappeared.
TvTime – Configuration pour Pinnacle PCTV (bt878)
Voici une configuration fonctionnelle pour une carte Pinnacle PCTV avec les drivers bt878. Fontionnelle avec PulseAudio grace à la ligne: [xml]<option name="MixerDevice" value="hw:0/Line"/>[/xml] Fichier de configuration tvtime.xml: [xml]<?xml version="1.0"?> <!DOCTYPE tvtime PUBLIC "-//tvtime//DTD tvtime 1.0//EN" "http://tvtime.sourceforge.net/DTD/tvtime1.dtd"> <tvtime xmlns="http://tvtime.sourceforge.net/DTD/"> <option name="DefaultBrightness" value="-1"/> <option name="DefaultContrast" value="-1"/> <option name="DefaultSaturation" value="-1"/> <option name="DefaultHue" value="-1"/> <option name="PrevChannel" value="18"/> <option name="Channel" value="15"/> <option name="FramerateMode" value="0"/> <option name="OverScan" value="3.5"/> <option name="CheckForSignal" value="1"/> <option name="AudioBoost" value="100"/> <option name="AlwaysOnTop" value="0"/> <option name="QuietScreenshots" value="0"/> <option name="UnmuteVolume" value="77"/> <option name="Muted" value="1"/> <option name="V4LInput" value="0"/> <option name="AudioMode" value="lang2"/> <option name="PalDKMode" value="0"/> <option name="Widescreen" value="0"/> <option name="Fullscreen" value="0"/> <option name="Verbose" value="0"/> <option name="WindowGeometry" value="0x576"/> <option name="InputWidth" value="924"/> <option name="V4LDevice" value="/dev/video0"/> <option name="VBIDevice" value="/dev/vbi0"/> <option name="Norm" value="PAL"/> <option name="Frequencies" value="europe"/> <option name="MixerDevice" value="hw:0/Line"/> <option name="XMLTVFile" value="none"/> <option name="XMLTVLanguage" value="none"/> <option name="ProcessPriority" value="-10"/> <option name="DeinterlaceMethod" value="ProgressiveBFF"/> </tvtime>[/xml]
SNMP++, Didacticiel N.1
Le SNMP avec Net-SNMP, c’est chouette, mais c’est lent! Voici un moyen d’y remedier : SNMP++ [cpp] #define SYSDESCR "1.3.6.1.2.1.1.1" using namespace Snmp_pp; using namespace std; int main(int argc,char *argv[]){ int status = 0; CTarget ctarget((IpAddress)"192.168.2.1","public","private"); Vb vb(SYSDESCR); Pdu pdu; Snmp snmp(status); if(status != SNMP_CLASS_SUCCESS ){ cout << snmp.error_msg(status); } pdu += vb; if((status=snmp.get(pdu,ctarget))!= SNMP_CLASS_SUCCESS) cout<<snmp.error_msg(status); else { pdu.get_vb( vb,0); cout << "System Descriptor = "<< vb.get_printable_value(); } if((status=snmp.get_next(pdu,ctarget))!= SNMP_CLASS_SUCCESS) cout<<snmp.error_msg(status); else { pdu.get_vb( vb,0); cout << "System Descriptor = "<< vb.get_printable_value(); } if((status=snmp.get(pdu,ctarget))!= SNMP_CLASS_SUCCESS) cout<<snmp.error_msg(status); else { pdu.get_vb( vb,0); cout << "System Descriptor = "<< vb.get_printable_value(); } exit(0); } [/cpp]
Rsyslog avec Fedora 8 et 9
Rsyslog est le démon Syslog par défaut dans les distributions Fedora 8 et 9. Il permet une interaction assez simple avec différentes bases de données: MySQL, Oracle, PostgreSQL, Autres (via libdbi). De plus, il est modulaire et permet à l’aide des modules d’affiner les filtres, aisni que le traitement effectué lors de la réception d’un message syslog. Durant mon Stage, j’ai été amené à essayer d’executer un script lors de la réception d’un message syslog qui aurait pour but d’aller sauvegarder la configuration courante d’un périphérique réseau (Cisco, ect…). Pour se faire, Rsyslog permet d’ executer des scripts, des binaires via la commande suivante: *.* ^MonBinaire,Template Ainsi le template définira la chaine de caractères qui sera transmise en premier argument lors de l’appel de script/binaire.
Scripts propres sous Gentoo
Il est souvent lourd de devoir rééditer ses fichiers de configuration lorsque il y a comme par exemple dans “/etc/conf.d/modules”, une multitude de modules et que nous ne souhaitons pas avoir tout sur une seule ligne, ce qui est laid, lourd et vraiment énervant à editer. Pour ça, il existe un moyen simple d’organiser le chargement par des modules en fesant de petits groupes de modules. Exemple: video_mod=”nvidia” crypto_mod=”generic_aes aes michael_mic pcbc” vmware_mod=”vmmon vmblock vmnet” et pour les appeler dans “modules”, il suffira de faire modules=”${video_mod} ${crypto_mod} ${vmware_mod}” C’est plus simple lors d’une future recompilation ou modification de vos modules de les trier comme ceci. Ca devient dés lors simple et lisible de savoir ce que l’on veut charger au boot ou pas et le fichier de configuration reste pleinement valide. Ceci a été testé avec OpenRC et Baselayout2 (travail de Roy Maple).
Logiciel de Gestion Dentaire
Suite à de longues discussions avec mon père, et mon envie de faire quelques choses d’autres que les projets scolaires, je me lance dans la création/réalisation d’un logiciel multi-plateforme en Java: Un client Un gestionnaire de Rendez-Vous Un serveur Avec comme système de stockage des données: MySQL/PostGreSQL A faire: Lui trouver un nom accrocheur en rapport avec ses applications (la Dentisterie et la gestion d’un Cabinet Médical) Idées: TheDentist Dentator 🙂 Créer les pages pour la présentation du logiciel En projet: Interface Web (certainement en Java ou en Ruby) similaire au client Java Un système de prise de rendez-vous sur un Smart Phone License: Le projet sera certainement sous license BSD 1.0 ou Apache 2.0
Snmp4J – ebuild
Et bien voila, je viens de terminer les ebuilds pour Snmp4J, une bibliothéque Open Source sous license Apache 2.0 pour travailler avec du snmp. Elle est bien documentée, fonction sur une base événementiell et se prend en main assez rapidement comme la plus part des packages pour java. Disponnible sur bugs.gentoo.org : ici Ou sur la zone51 : ici
OpenRC + Baselayout 2
Voici un projet initié par Roy Marples alias UberLord qui a fait un excellent travail avec ce script de RC programmé en C et “Unix-Compliant”. Grace à lui, votre machine démarre de 1 à 3 fois plus vite selon la configuration. Pour pouvoir installer OpenRC, il faut en premier lieu installer “layman”, et installer “git”, pour enfin ajouter l’overlay de openrc comme ceci : “layman -a openrc”. Ensuite il ne vous reste plus qu’a faire “emerge -uDNav openrc” et vous voila parti pour 5 à 6 minutes d’installation grand maximum, il faudra juste penser que certains des fichiers de configuration sont “useless” tel que le bon vieux “/etc/modules.autoload/kernel-2.x” qui est remplacé par “/etc/conf.d/modules”. OpenRC ne vous manquera pas de le faire remarquer à la fin de l’installation dans les explications “post-install”. Merci Roy pour ce travail très abouti ! Blog de monsieur