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

Tag - linux

Fil des billets

jeudi, juin 11 2009

Envoyer des mails via gMail depuis son serveur en utilisant sSMTP

gmail iconAu lieu de configurer un MTA de type postfix ou un sendmail, il est parfois pratique d'utiliser directement son adresse email pour envoyer des messages depuis le serveur. C'est exactement ce que ssmtp permet!

1) Installer sSMTP

Suivant votre distribution :

apt-get install ssmtp
emerge ssmtp
yum install ssmtp

2) Configurer

Fichier de config /etc/ssmtp/ssmtp.conf

FromLineOverride=YES
hostname=myhostname
AuthUser=email@gmail.com
AuthPass=password
mailhub=smtp.gmail.com:587
useSTARTTLS=YES

3) Tester !

echo "hello world" | mail -s "ssmtp mail" me@domain.com

Et c'est parti !

jeudi, janvier 22 2009

Utiliser le gestionnaire de versionnement GIT

J'ai mis longtemps à choisir un VCS et voilà j'ai fait mon choix ce sera GIT. Bazaar à l'air sympa et a les mêmes caractéristiques à peu près. Enfin ce qui m'interesse surtout c'est la gestion décentralisée!

Configuration des infos utilisateur

$ git config --global user.name "Your Name Comes Here"
$ git config --global user.email you@yourdomain.example.com

Initialiser le repertoire pour travailler avec GIT

cd  ~projects/mywebsite
git init
git add.
git commit -m "Import initial"

Avec ceci nous avons un environnement de travail prêt avec une branche créée "master" par défaut. Pour gérer les branches il suffit de faire un git branch

Travailler à plusieurs sur le même serveur en ayant chacun son répertoire de travail

git clone ~projects/mywebsite ~projects/fry-work
git clone ~projects/mywebsite ~projects/leela-work

Vous pouvez configurer chaque repertoire de travail dans les vhosts de apache afin d'avoir un site propre à chaque développeur.

Mettre à jour le site principal (trunk)

cd ~projects/fry-work
git commit -a -m "Les modifs de Fry!"
cd ~projects/mywebsite
git pull ~projects/fry-work master

Et voilà !

Sources et infos :

jeudi, décembre 4 2008

Faire une copie sécurisée et rapide d'un serveur à un autre simplement avec rsync et ssh

Pré requis

Avoir rsync et ssh d'installé sur sa machine. Si c'est pas le cas installer les paquets suivants (cas d'une machine sous Debian ou Unbuntu) :

sudo apt-get install rsync
sudo apt-get install ssh

Pairage pour ne pas avoir a rentrer le mot de passe à chaque fois (optionnel)

Manipulation à faire avec les privilèges root (sudo -s) sur la machine locale: Dans mon cas on utilise un port spécial (222) pour ssh, il faut donc le spécifier dans la commande.

ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub | ssh -p 222 root@monserveurdistant.fr "cat -  ~/.ssh/authorized_keys"

Mettez une passphrase vide si vous ne voulez pas saisir le mot de passe à chaque fois

Envoi des données ou récupération des données

Enfin on utilise rsync avec compression (-z) en mode verbeux (-v) et archive (-a) et on se connecte sur la machine sur le port spécial (222). Avec ces options rsync va faire la différence entre les deux répertoires et n'envoyer que les fichiers différent ce qui permet de gagner un temps énorme lorsque l'on veut synchroniser deux serveurs régulièrement. Rsync a le même fonctionnement que scp c'est à dire source à gauche et destination à droite, ainsi l'exemple suivant envoi les données sur le serveur distant.

rsync -avz -e 'ssh -p 222' --progress /var/www root@monserveurdistant.fr:/var/www

Mais on peut très bien faire l'inverse et récupérer les données du serveur distant en local

rsync -avz -e 'ssh -p 222' --progress root@monserveurdistant.fr:/var/www /var/www 

Synchronisation programmée avec CRON

Ça peut être pratique de faire ça tous les jours ou toutes les heures donc le plus simple c'est de rajouter une ligne CRON.

crontab -e

Et ajoutez pour une synchro tous les jours à 4h du matin

00 4 * * * rsync -avz -e 'ssh -p 222' --progress root@monserveurdistant.fr:/var/www /var/www

Et voilà !

vendredi, mai 16 2008

Bash pageup and down dans history & .bashrc

Recherche des mots dans l'history avec pageup et pagedown

Editer le fichier /etc/inputrc

# mappings for "page up" and "page down" to step to the beginning/end
# of the history
"\e[5~": history-search-backward
"\e[6~": history-search-forward

# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\eO5C": forward-word
"\eO5D": backward-word

Retrouver les keymap

Pour retrouver le raccourci dans un shell faites CTRL-V et tappez le raccourci souhaitez. Exemple sous fedora CTRL+left arrow donne "^[O5D", il faut remplacer le "^[" par "\e" ce qui donne "\eO5D".

Autre solution, au lieu de modifier le /etc/inputrc, on peut utiliser bind dans le .bashrc

bind '"\e[5~":history-search-backward' bind '"\e[6~":history-search-forward'

Autres choses interessantes

  1. completion cyclique

bind '"²":menu-complete'

  1. montrer les possibilités si choix ambigu dans la completion

bind "set show-all-if-ambiguous on"

  1. ignorer la casse pour la completion

bind "set completion-ignore-case on"

.bashrc example

#aliases
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
#alias grep='grep --color'
export GREP_OPTIONS='--color=auto'

#environment
PS1='\[\033[01;34m\]\t \[\033[01;32m\]\u@\h \[\033[01;34m\]\w \$ \[\033[00m\]'
EDITOR="/usr/bin/nano"
VISUAL="/usr/bin/nano"

#history
bind '"\e[5~":history-search-backward'
bind '"\e[6~":history-search-forward'

#completion cyclique
bind '"²":menu-complete'
#montrer les possibilités si choix ambigu dans la completion
bind "set show-all-if-ambiguous on"
#ignorer la casse pour la completion
bind "set completion-ignore-case on"

#calculatrice
calc(){ awk "BEGIN{ print $* }" ;}

Ensuite

source .bashrc

Autre truc interessant à mettre dans le .bashrc pour les chmod :

  1. chmod all files/directory

alias chmodd=’find . -type d -exec chmod 711 {} \;’ alias chmodf=’find . -type f -exec chmod 755 {} \;’

Locale en UTF-8 pour l'utilisateur courant

export lang=fr_FR.utf8 export LANG=fr_FR.utf8 export LANGUAGE=fr_FR.utf8 export LC_ADDRESS=fr_FR.utf8 export LC_ALL=fr_FR.utf8 export LC_COLLATE=fr_FR.utf8 export LC_IDENTIFICATION=fr_FR.utf8 export LC_MESSAGES=fr_FR.utf8 export LC_MEASUREMENT=fr_FR.utf8 export LC_MONETARY=fr_FR.utf8 export LC_NAME=fr_FR.utf8 export LC_NUMERIC=fr_FR.utf8 export LC_PAPER=fr_FR.utf8 export LC_TELEPHONE=fr_FR.utf8 export LC_TIME=fr_FR.utf8 export LC_TYPE=fr_FR.utf8

Et voilà!

mardi, avril 29 2008

Faire un message d'absence avec Qmail

Le fichier dot qmail (.qmail) du repertoire utilisateur permet d'executer des commandes et redirections lors de la réception d'email. Ce fichier doit être placé ici : /var/vpopmail/domains/mydomain.com/user1/.qmail

Voir la documentation officielle ici : http://www.qmail.org/man/man5/dot-qmail.html

Dans l'exemple ci-dessous nous renverrons un message à l'expediteur tout en en stockant le message dans la boite mail de destination.

Le fichier .qmail:

| cat .email | sed s/"\!SENDER\!"/$SENDER/g | /var/qmail/bin/qmail-inject
/var/vpopmail/domains/mydomain.com/user1/.maildir/

L'email de réponse .email

From: "User 1" <user1@mydomain.com>
To: !SENDER!
Subject: Automatic response

You would rather like to send messages to user2@mydomain.com.
Thank you.

Et voilà, l'expéditeur sera averti de l'absence de la personne, mais l'email sera quand même receptionné. A vous de personnaliser le message bien sûr!

mercredi, mars 19 2008

Pure-ftp

Ajout de l'utilisateur

pure-pw useradd toto -d /export/ftp/toto/ -t 60 -N 2048 -y 3 -u 21 -g 21

-d directory -t limitation de la bande passante en download à 60ko/s -N 2048Mo en limite -y nombre de connexions simultanées 2 ou 3 -u uid 21=ftp -g gid 21=ftp Mise à jour de la DB

pure-pw mkdb

Verification des options de l'utilisateur

pure-pw show toto

Test de la connexion a faire coté client. Vérification des connexions sur le serveur

watch -n 1 pure-ftpwho

mardi, décembre 11 2007

FFmpeg

Aide sur ffmpeg

ffmpeg  -i input.ogg -ar 22050 -ab 56 -aspect 4:3 -b 200 -r 12 -f flv -s 320x240 -acodec mp3 -ac 1 output.flv

Sans audio mpeg2

ffmpeg  -i input.ogg -an -aspect 4:3 -b 200 -r 15 -s 320x240 -target pal-dvd output.mpg

Conversion en flash

ffmpeg  -i input.ogg output.swf

Options importantes:

-an : no audio
-target: pal-dvd
-b: bitrate video
-s: resolution
-aspect: aspect
-f: codec

mardi, août 28 2007

Seq

Comment générer une suite de chiffres très facilement avec un format particulier?

seq -s ',' -f 01021501C%04g 16 20

va génerer:

01021501C0016,01021501C0017,01021501C0018,01021501C0019,01021501C0020

Comment faire plus facile??

vendredi, juillet 13 2007

Satané erreur 13 du vendredi 13 !!

Ce matin alors que je voulais créer une nouvelle base de données mysql pour faire quelques essais, mon mysqladmin me répondit la chose suivante:

10:57:08 root@xxx mysql# mysqladmin create SANDBOX
mysqladmin: CREATE DATABASE failed; error: 'Ne peut créer la base 'SANDBOX' (Erreur 13)'

Erreur 13??? Mais qu'est ce que cela peut bient être? Aucune information de plus... sympa mysql. Un petit coup de google et pas grand chose non plus...

Finalement après quelques recherches, il s'agissait d'une chose toute simple, j'ai déplacé mon répertoire de données mysql et j'avais oublié de remettre les droits sur le répertoire. Bref un petit coup de

chown mysql mysql && chgrp mysql mysql

et ça remarche.

En espérant que ça aide certains :)

mardi, juillet 3 2007

Petits problèmes et conseils pour Ubuntu 7.10

Config clavier xorg.conf

Votre clavier est passé en qwerty suite à une mise à jour de xorg? Voici la solution

SAMBA:

Parcque partager ses fichiers c'est mieux! http://doc.ubuntu-fr.org/installation/monterpartagewindows

en ligne de commande

mount //serveur/partage /media/partage/ -o username=bob,iocharset=utf8,users,user,rw,uid=bob,gid=users

dans fstab:

//serveur/partage   /media/partage  smbfs defaults,user,users,iocharset=utf8,codepage=850,dmask=755,fmask=644,rw,credentials=/root/.smbcredentials,uid=bob,gid=users 0 0

crédentials

username=bob
password=marley

VirtualBox:

La virtualisation simplifiée avec VirtualBox

Bip système

Pour supprimer le bip dans le terminal, créer un fichier .inputrc dans le home de l'utilisateur avec le contenu suivant:

set bell-style visible

mardi, mars 20 2007

GNU Screen tips et le .screenrc

Screen est un multiplexeur de terminal. Je vais vous donner quelques tips sympa pour utiliser au mieux cet outil merveilleux.

Si vous ne connaissez pas cet outil, je vous laisse le découvrir en lisant ceci ou allant sur la homepage du projet

Lancement de screen

Lancement classique

screen

Reprendre une session existante

screen -rd

Lister les sessions existantes

screen -ls

Reprendre une session parmi plusieurs

screen -rd <num> #seulement le premier chiffre suffit

Lancer une session en mode collaboratif

screen -x

.screenrc

Problèmes d'escape? utilisez les bind suivant

bindkey -b -d kb stuff ^H
bindkey -d -k kb stuff "\010"

Voir également http://www.linuxquestions.org/questions/showthread.php?threadid=132819

Voici mon .screenrc complet

startup_message off
# send CTRL-H when use backspace
bindkey -b -d kb stuff ^H
# set terminal type
#term vt100
# set a big scrolling buffer
defscrollback 5000
caption always "%{= kw}%-w%{= BW}%n %t%{-}%+w %-= @%H - %LD %d %LM - %c"
# screen visual bell message
vbell_msg " Dinggg "
# utf-8 for new windows
defutf8 on
# utf-8-aware in the 2 ways
utf8 on on

Tips

Toutes les commandes commencent pas CTRL-a abregé sur les docs pas C-a

Quelques commandes basiques:

  • C-a C création d'un nouveau terminal
  • C-a 2 permet de sélectionner le terminal 2
  • C-a " permet de voir la liste des terminaux ouverts
  • C-a a permet de switcher avec le dernier terminal ouvert
  • C-a d permet de détacher screen
  • C-a A permet de renommer le terminal courant

Quelques commandes sympa:

  • C-a S split le screen en horizontal, ça s'appelle les régions
  • C-a <tab> permet de naviguer entre les régions
  • C-a X permet de fermer toutes les régions et de revenir au comportement par défaut
  • C-a : active la ligne de commande interne à screen. exemple tapper resize 30 pour changer la taille d'une région
  • C-a <esc> permet de passer en mode copy
  • <space> pendant le mode copy set le début de la copie, rappuyer sur <space> à la fin de la sélection. Pour utiliser ce buffer il faut faire C-a ]

Ressources:

Le Gentoo wiki : énorme documentation doc http://gentoo-wiki.com/TIP_Using_screen