Catégorie : Script

13 avril 2016 /

Pour un programme /usr/local/bin/test.sh, on va créer un fichier test.service dans le répertoire de configuration de Systemd, /etc/systemd/system/ :

vi /etc/systemd/system/test.service

Et on y mets ça:

[Unit]
Description=Mon service test
After=tlp-init.service

[Service]
Type=oneshot
RemainAfterExit=no
User=starmate

ExecStart=/usr/local/bin/test.sh

[Install]
WantedBy=multi-user.target

On démarre le service:

systemctl start test.service

Puis on l’active au démarrage :

systemctl enable test.service

28 janvier 2016 /

Boucle for à mettre dans son .bashrc :

vi ~/.bashrc

On met la boucle a fin la du fichier.

function fermer {
BAK=$IFS
IFS=$'\n'
for id in $(ps aux | grep -P -i $1 | grep -v "grep" | awk '{printf $2" "; for (i=11; i<NF; i++) printf $i" "; print $NF}'); do service=$(echo $id | cut -d " " -f 1) if [[ $2 == "-t" ]]; then echo $service \"$(echo $id | cut -d " " -f 2-)\" "peut-être tué" else echo $service \"$(echo $id | cut -d " " -f 2-)\" "a été tué" for signal in "TERM" "INT" "HUP" "KILL" "9"; do kill -$signal $service RETVAL=$? [ $RETVAL -eq 0 ] && break echo "Attention: le kill n'a pas marché: pid=$service, signal=$signal" >&2
sleep 1
done
fi
done
IFS=$BAK
}

A défaut de ré-ouvrir un shell, on doit sourcer son .bashrc pour une prise en compte immédiate:

cd ~
source .bashrc

On peut visualiser les pids qui vont etre tués via un mode test:

fermer nom_du_programme -t

Et dés qu’on est sur:

fermer nom_du_programme

5 novembre 2015 /

Cette méthode est à utiliser avec des serveurs FTP ne contenant pas de données sensibles, car les identifiants de connexion sont stockés en clair.
Ce script permet de télécharger du serveur ftp « ftp.test.fr » le fichier « test.txt » en utilisant l’identifiant « test » et le mot de passe « t4st »

#!/bin/bash
ftplogin="test"
ftppasswd="t4st"
url_ftp="ftp.test.fr"
fichier="test.txt"
# On se positionne dans le dossier /home/test/ftp
# où sera téléchargé le fichier du serveur FTP
cd /home/test/ftp
ftp -in <<EOF
open $url_ftp
user $ftplogin $ftppasswd
get $fichier
close
bye
EOF
# Peut être complété par d'autre commande ici, notamment sur le fichier téléchargé.
exit 0

8 octobre 2015 /

Un petit script pour tuer un processus qui dure trop longtemps (ici php):

#!/bin/bash
/bin/ps -eo pid,etime,command|/bin/grep /usr/local/zend/bin/php|/bin/egrep '([0-9]+)([ ]+)([2-9]{1}[0-9]{1}:[0-9]{2})'|/bin/awk '{print $1}'|xargs -I{} kill {}

13 septembre 2015 /

Si vous avez besoin de vous connecter automatiquement avec un utilisateur sur une machine au démarrage de celle-ci, il suffit de désactiver le gestionnaire de connexion. Pour cela, il suffit créer ce service dans SystemD

Création du répertoire de destination:

mkdir -pv /etc/systemd/system/getty@tty1.service.d/

Créer un fichier de configuration:

vi /etc/systemd/system/getty@tty1.service.d/autologin.conf

Coller ce qui suit, en changeant $utilisateur par l’utilisateur de votre choix:

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin $utilisateur --noclear %I 38400 linux

Permettre le démarrage du service :

systemctl enable getty@tty1.service

Au prochain redémarrage la machine sera automatiquement connectée avec l’utilisateur choisi.