ps -edf | grep "postgres" | grep "192.168" | awk '{print "kill "$2}' >> /home/script.sh
ps -edf | grep "postgres" | grep "192.168" | awk '{print "kill "$2}' >> /home/script.sh
chmod 777 /home/script.sh
/home/script.sh
Ca me stresse cette maniere de proceder tellement je trouve ca contre-nature.
1. Pourquoi 2 fois ps ? o_O
2. chmod 777 est une commande d'une stupidite inegalee. Ca n'est jamais utile, et c'est encore plus inutile ici. Pourquoi veux tu donner des permissions aux autres alors que c'est toi qui va le lancer ? Cette (absence de) logique me choque. De plus en donnant ces permissions, t'es pas a l'abris que quelqu'un viennent te le pourrir dans ton dos juste avant que tu ne l'executes. Vois la page : info coreutils "Mode Structure"
3. La methode de "je cree un shell script que j'execute dans mon shell script" est de toute facon malsaine. La bonne methode pour tuer tes bidules serait de faire un killall, mais si tu veux complexifier la chose, tu peux faire un kill $(ps -edf|grep|grep)... et au passage je te recommande "pidof" - voir le man associe.
today=`date +%j`
done=0
if [[ $today == 00* ]];then
yesterday=${today:2:3}
let num=$yesterday-1
yesterday='00'$num
done=1
fi
if [[ $today == 0* ]];then
if [ "$done" = "0" ];then
yesterday=${today:1:3}
let num=$yesterday-1
yesterday='0'$num
fi
fi
Halte au massacre : man date : date +%j -d yesterday
if [ ! -e /usr/local/pgsql/archive/$yesterday ];then
mkdir /usr/local/pgsql/archive/$yesterday
fi
if [ ! -e /usr/local/pgsql/archive/$yesterday/wal ];then
mkdir /usr/local/pgsql/archive/$yesterday/wal
fi
man mkdir : mkdir -p /usr/local/pgsql/archive/$yesterday/wal - sans test, rien.
`gzip -9 /usr/local/pgsql/archive/$yesterday/wal/*`
Pourquoi y'a des backquotes ? cette commande ne retourne rien, et il n'y a donc rien a executer apres l'evaluation des backquotes. Au pire si gzip retourne un message d'erreur tu vas te retrouver a essayer d'executer le message d'erreur.
echo ''
echo ''
echo '[SCRIPT STOP AT '`date`']'
echo ''
Ou bien :
cat <<EOF
[SCRIPT STOP AT $(date)]
EOF
Moins fastidieux a ecrire.
Au passage, n'utilise pas les backquotes. Utilise la syntaxe $() a la place. C'est la recommandation POSIX. (donc $(foo) au lieu de `foo`)