Ayant récemment lu ici un sujet a propos de rsync, je me suis souvenu
que j'avais dans ma TODO list de configurer la sauvegarde de mon daily
PC sur un linux qui traine sur mon réseau (Linux que je viens de doter
d'un disque de 1 To, ça doit être pour ça que j'ai eu l'idée de le
remplir de sauvegardes).
Pour l'instant, je monte le home de ce "serveur" sur mon daily et
j'envoie la commande :
rsync -axvuzs --progress --stats "${origine}" "${destination}"
("${origine}" valant "/home/hugo/" et ${destination} valant
"/mnt/Dottore/home/hugo/" (les plus motardisés d'entre vous auront
peut-être deviné que mon serveur de sauvegarde a pour adresse
192.168.1.46))
M'est venu l'idée de vouloir effectuer cette sauvegarde sans monter via
NFS le répertoire du serveur et donc taper plutôt la commande :
rsync -e "ssh -p 8222" -axvuzs --progress --stats /home/hugo/ hugo@192.168.1.46:/home/hugo/
Seulement voilà...
Après avoir saisi mon mot de passe sur le serveur ssh, j'obtiens un:
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(176)
[sender=3.1.1]
Tout ça parce que le bash sur le serveur (que j'utiise pour m'y
connecter de temps à autre depuis une autre machine) a été configuré
pour afficher un prompt personnalisé avec aussi un fortune tiré des
élucubrations qui ne servent de signatures sur usenet.
Bref, même après lectures de la page man de ssh, de différents tutos sur
le net, je ne sais pas quelle option passer à ssh afin qu'il reste muet
(et donc "clean") et permette à rsync de faire son boulot.
Merci de vos avis.
--
> Ouais, bon, en même temps, je n'ai pas forcément envie de bosser dans
> l'informatique, là tout de suite. Si je n'ai jamais travaillé dans ce
> secteur, c'est qu'il y a une raison...
Bof, je te parle pas de travailler mais juste de toucher un salaire.
Tout ça parce que le bash sur le serveur (que j'utiise pour m'y connecter de temps à autre depuis une autre machine) a été configuré pour afficher un prompt personnalisé avec aussi un fortune tiré des élucubrations qui ne servent de signatures sur usenet.
Il ne devrait afficher quoi que ce soit qu'en mode interactif. C'est ça qu'il faut corriger. Le moyen le plus rapide de tester est d'utiliser une commande du genre : ssh true Elle ne doit strictement rien afficher.
Hugolino , dans le message
<slrnojpafg.9jg.hugolino@Minty.Rock-n-Roll.org>, a écrit :
Tout ça parce que le bash sur le serveur (que j'utiise pour m'y
connecter de temps à autre depuis une autre machine) a été configuré
pour afficher un prompt personnalisé avec aussi un fortune tiré des
élucubrations qui ne servent de signatures sur usenet.
Il ne devrait afficher quoi que ce soit qu'en mode interactif. C'est ça
qu'il faut corriger. Le moyen le plus rapide de tester est d'utiliser
une commande du genre :
Tout ça parce que le bash sur le serveur (que j'utiise pour m'y connecter de temps à autre depuis une autre machine) a été configuré pour afficher un prompt personnalisé avec aussi un fortune tiré des élucubrations qui ne servent de signatures sur usenet.
Il ne devrait afficher quoi que ce soit qu'en mode interactif. C'est ça qu'il faut corriger. Le moyen le plus rapide de tester est d'utiliser une commande du genre : ssh true Elle ne doit strictement rien afficher.
Hugolino
Le 11-06-2017, Nicolas George <nicolas$ a écrit :
Hugolino , dans le message , a écrit :
Tout ça parce que le bash sur le serveur (que j'utiise pour m'y connecter de temps à autre depuis une autre machine) a été configuré pour afficher un prompt personnalisé avec aussi un fortune tiré des élucubrations qui ne servent de signatures sur usenet.
Il ne devrait afficher quoi que ce soit qu'en mode interactif. C'est ça qu'il faut corriger.
Comment faire ? Quelques recherches me causent du paquet sshpass mais je crois que ça va ressembler à une usine à gaz : utiliser rsync, ssh et sshpass ensemble me semble le moyen le plus sûr de perdre du temps à configurer tout ça.
Le moyen le plus rapide de tester est d'utiliser une commande du genre : ssh true Elle ne doit strictement rien afficher.
Elle me demande le mot de passe de hugo sur 192.168.1.46 puis me connecte en affichant une fortune et mon prompt personnalisé avant de me déconnecter (après exécution de 'true' j'imagine). Est-ce que le problème viendrait du fait que mon serveur ssh est configuré pour demander un mot de passe ? (Je n'ai jamais vraiment compris cette sombre histoire de clé). --
Une amorce de serrage en 2T sur une décélération prolongée, moi j'appelle ça un défaut de lubrification.
Une décélératrion prolongée sur un 2T, moi j'appelle ça de la connerie. Hugo (né il y a 1 676 604 196 secondes)
Le 11-06-2017, Nicolas George <nicolas$george@salle-s.org> a écrit :
Hugolino , dans le message
<slrnojpafg.9jg.hugolino@Minty.Rock-n-Roll.org>, a écrit :
Tout ça parce que le bash sur le serveur (que j'utiise pour m'y
connecter de temps à autre depuis une autre machine) a été configuré
pour afficher un prompt personnalisé avec aussi un fortune tiré des
élucubrations qui ne servent de signatures sur usenet.
Il ne devrait afficher quoi que ce soit qu'en mode interactif. C'est
ça qu'il faut corriger.
Comment faire ?
Quelques recherches me causent du paquet sshpass mais je crois que ça va
ressembler à une usine à gaz : utiliser rsync, ssh et sshpass ensemble
me semble le moyen le plus sûr de perdre du temps à configurer tout ça.
Le moyen le plus rapide de tester est d'utiliser
une commande du genre :
ssh hugo@192.168.1.46 true
Elle ne doit strictement rien afficher.
Elle me demande le mot de passe de hugo sur 192.168.1.46 puis me
connecte en affichant une fortune et mon prompt personnalisé avant de me
déconnecter (après exécution de 'true' j'imagine).
Est-ce que le problème viendrait du fait que mon serveur ssh est
configuré pour demander un mot de passe ? (Je n'ai jamais vraiment
compris cette sombre histoire de clé).
--
Une amorce de serrage en 2T sur une décélération prolongée, moi j'appelle ça
un défaut de lubrification.
Une décélératrion prolongée sur un 2T, moi j'appelle ça de la connerie.
Hugo (né il y a 1 676 604 196 secondes)
Tout ça parce que le bash sur le serveur (que j'utiise pour m'y connecter de temps à autre depuis une autre machine) a été configuré pour afficher un prompt personnalisé avec aussi un fortune tiré des élucubrations qui ne servent de signatures sur usenet.
Il ne devrait afficher quoi que ce soit qu'en mode interactif. C'est ça qu'il faut corriger.
Comment faire ? Quelques recherches me causent du paquet sshpass mais je crois que ça va ressembler à une usine à gaz : utiliser rsync, ssh et sshpass ensemble me semble le moyen le plus sûr de perdre du temps à configurer tout ça.
Le moyen le plus rapide de tester est d'utiliser une commande du genre : ssh true Elle ne doit strictement rien afficher.
Elle me demande le mot de passe de hugo sur 192.168.1.46 puis me connecte en affichant une fortune et mon prompt personnalisé avant de me déconnecter (après exécution de 'true' j'imagine). Est-ce que le problème viendrait du fait que mon serveur ssh est configuré pour demander un mot de passe ? (Je n'ai jamais vraiment compris cette sombre histoire de clé). --
Une amorce de serrage en 2T sur une décélération prolongée, moi j'appelle ça un défaut de lubrification.
Une décélératrion prolongée sur un 2T, moi j'appelle ça de la connerie. Hugo (né il y a 1 676 604 196 secondes)
Nicolas George
Hugolino , dans le message , a écrit :
Quelques recherches me causent du paquet sshpass mais je crois que ça va ressembler à une usine à gaz : utiliser rsync, ssh et sshpass ensemble
Si tu veux éviter d'avoir à taper le mot de passe, utilise une clef et un agent SSH, mais ça n'a rien à voir avec le problème.
Elle me demande le mot de passe de hugo sur 192.168.1.46 puis me
Le mot de passe est côté client, donc ça n'a rien à voir.
connecte en affichant une fortune et mon prompt personnalisé avant de me déconnecter (après exécution de 'true' j'imagine).
Donc ton .bashrc est doublement buggé. Ni fortune ni prompt ne devraient être affichés dans ces conditions.
Est-ce que le problème viendrait du fait que mon serveur ssh est configuré pour demander un mot de passe ?
Non.
Hugolino , dans le message
<slrnojqork.b1k.hugolino@Minty.Rock-n-Roll.org>, a écrit :
Quelques recherches me causent du paquet sshpass mais je crois que ça va
ressembler à une usine à gaz : utiliser rsync, ssh et sshpass ensemble
Si tu veux éviter d'avoir à taper le mot de passe, utilise une clef et
un agent SSH, mais ça n'a rien à voir avec le problème.
Elle me demande le mot de passe de hugo sur 192.168.1.46 puis me
Le mot de passe est côté client, donc ça n'a rien à voir.
connecte en affichant une fortune et mon prompt personnalisé avant de me
déconnecter (après exécution de 'true' j'imagine).
Donc ton .bashrc est doublement buggé. Ni fortune ni prompt ne devraient
être affichés dans ces conditions.
Est-ce que le problème viendrait du fait que mon serveur ssh est
configuré pour demander un mot de passe ?
Quelques recherches me causent du paquet sshpass mais je crois que ça va ressembler à une usine à gaz : utiliser rsync, ssh et sshpass ensemble
Si tu veux éviter d'avoir à taper le mot de passe, utilise une clef et un agent SSH, mais ça n'a rien à voir avec le problème.
Elle me demande le mot de passe de hugo sur 192.168.1.46 puis me
Le mot de passe est côté client, donc ça n'a rien à voir.
connecte en affichant une fortune et mon prompt personnalisé avant de me déconnecter (après exécution de 'true' j'imagine).
Donc ton .bashrc est doublement buggé. Ni fortune ni prompt ne devraient être affichés dans ces conditions.
Est-ce que le problème viendrait du fait que mon serveur ssh est configuré pour demander un mot de passe ?
Non.
Hugolino
Le 11-06-2017, Nicolas George <nicolas$ a écrit :
Hugolino , dans le message , a écrit :
Quelques recherches me causent du paquet sshpass mais je crois que ça va ressembler à une usine à gaz : utiliser rsync, ssh et sshpass ensemble
Si tu veux éviter d'avoir à taper le mot de passe, utilise une clef et un agent SSH, mais ça n'a rien à voir avec le problème.
0K
Elle me demande le mot de passe de hugo sur 192.168.1.46 puis me
Le mot de passe est côté client, donc ça n'a rien à voir.
Dans ton message précédent, tu me disais que "ssh true" ne doit strictement rien afficher. Est-il normal qu'elle affiche la demande du mot de passe ? Selon moi, oui.
connecte en affichant une fortune et mon prompt personnalisé avant de me déconnecter (après exécution de 'true' j'imagine).
Donc ton .bashrc est doublement buggé. Ni fortune ni prompt ne devraient être affichés dans ces conditions.
Comment un fichier .bashrc pourrait-il être buggué ? Voici son contenu : 8<-----------8<---------8<----------8<----------8<----------8<----------8< # .bashrc # User specific aliases and functions NORMAL="[0;39m" RED="[1;31m" GREEN="[1;32m" YELLOW="[1;33m" BLUE="[1;34m" MAGENTA="[1;35m" CYAN="[1;36m" WHITE="[1;37m" # Source global definitions # deja fait dans ~/.bash_profile if [ -f /etc/bash.bashrc ]; then . /etc/bash.bashrc else if [ -f /etc/bashrc ]; then . /etc/bashrc fi fi #alias fm='echo "Installe postfix !!!!"' PATH=$PATH":/usr/sbin/:/sbin/:/usr/local/bin:/usr/games" export PATH FB_MAC_ADDRESS="00:07:CB:C5:BA:66" FB_NAME="FreeBox" export FB_MAC_ADDRESS export FB_NAME pi=$(echo "scale0; 4*a(1)" | bc -l) export pi alias sshh="ssh -p 8222" # Pour ftp chez free alias ftpfree="lftp " echo ${BLUE} /usr/bin/linux_logo -a echo if test -x /usr/local/bin/FortuneLogin >/dev/null then /usr/local/bin/FortuneLogin fi cat /home/hugo/taf/Bac-selon-Paul-Valery.txt | cowsay -W 68 | lolcat -a -s 1000 echo echo ${WHITE} " -=-=-=-=-=-=-=-" echo ${YELLOW} "You're logged as ${CYAN}"$(whoami)" ${YELLOW}!!" echo ${WHITE} " -=-=-=-=-=-=-=-" echo 8<-----------8<---------8<----------8<----------8<----------8<----------8< Seule bizarrerie, avec ton invocation de ssh, lolcat ne m'affiche pas de couleurs...
Est-ce que le problème viendrait du fait que mon serveur ssh est configuré pour demander un mot de passe ?
Non.
0K -- Windows: Microsoft's tax on computer illiterates. Hugo (né il y a 1 676 652 350 secondes)
Le 11-06-2017, Nicolas George <nicolas$george@salle-s.org> a écrit :
Hugolino , dans le message
<slrnojqork.b1k.hugolino@Minty.Rock-n-Roll.org>, a écrit :
Quelques recherches me causent du paquet sshpass mais je crois que ça
va ressembler à une usine à gaz : utiliser rsync, ssh et sshpass
ensemble
Si tu veux éviter d'avoir à taper le mot de passe, utilise une clef
et un agent SSH, mais ça n'a rien à voir avec le problème.
0K
Elle me demande le mot de passe de hugo sur 192.168.1.46 puis me
Le mot de passe est côté client, donc ça n'a rien à voir.
Dans ton message précédent, tu me disais que "ssh hugo@192.168.1.46
true" ne doit strictement rien afficher.
Est-il normal qu'elle affiche la demande du mot de passe ? Selon moi,
oui.
connecte en affichant une fortune et mon prompt personnalisé avant de
me déconnecter (après exécution de 'true' j'imagine).
Donc ton .bashrc est doublement buggé. Ni fortune ni prompt ne
devraient être affichés dans ces conditions.
Comment un fichier .bashrc pourrait-il être buggué ?
Voici son contenu :
8<-----------8<---------8<----------8<----------8<----------8<----------8<
# Source global definitions
# deja fait dans ~/.bash_profile
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
else
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
fi
Quelques recherches me causent du paquet sshpass mais je crois que ça va ressembler à une usine à gaz : utiliser rsync, ssh et sshpass ensemble
Si tu veux éviter d'avoir à taper le mot de passe, utilise une clef et un agent SSH, mais ça n'a rien à voir avec le problème.
0K
Elle me demande le mot de passe de hugo sur 192.168.1.46 puis me
Le mot de passe est côté client, donc ça n'a rien à voir.
Dans ton message précédent, tu me disais que "ssh true" ne doit strictement rien afficher. Est-il normal qu'elle affiche la demande du mot de passe ? Selon moi, oui.
connecte en affichant une fortune et mon prompt personnalisé avant de me déconnecter (après exécution de 'true' j'imagine).
Donc ton .bashrc est doublement buggé. Ni fortune ni prompt ne devraient être affichés dans ces conditions.
Comment un fichier .bashrc pourrait-il être buggué ? Voici son contenu : 8<-----------8<---------8<----------8<----------8<----------8<----------8< # .bashrc # User specific aliases and functions NORMAL="[0;39m" RED="[1;31m" GREEN="[1;32m" YELLOW="[1;33m" BLUE="[1;34m" MAGENTA="[1;35m" CYAN="[1;36m" WHITE="[1;37m" # Source global definitions # deja fait dans ~/.bash_profile if [ -f /etc/bash.bashrc ]; then . /etc/bash.bashrc else if [ -f /etc/bashrc ]; then . /etc/bashrc fi fi #alias fm='echo "Installe postfix !!!!"' PATH=$PATH":/usr/sbin/:/sbin/:/usr/local/bin:/usr/games" export PATH FB_MAC_ADDRESS="00:07:CB:C5:BA:66" FB_NAME="FreeBox" export FB_MAC_ADDRESS export FB_NAME pi=$(echo "scale0; 4*a(1)" | bc -l) export pi alias sshh="ssh -p 8222" # Pour ftp chez free alias ftpfree="lftp " echo ${BLUE} /usr/bin/linux_logo -a echo if test -x /usr/local/bin/FortuneLogin >/dev/null then /usr/local/bin/FortuneLogin fi cat /home/hugo/taf/Bac-selon-Paul-Valery.txt | cowsay -W 68 | lolcat -a -s 1000 echo echo ${WHITE} " -=-=-=-=-=-=-=-" echo ${YELLOW} "You're logged as ${CYAN}"$(whoami)" ${YELLOW}!!" echo ${WHITE} " -=-=-=-=-=-=-=-" echo 8<-----------8<---------8<----------8<----------8<----------8<----------8< Seule bizarrerie, avec ton invocation de ssh, lolcat ne m'affiche pas de couleurs...
Est-ce que le problème viendrait du fait que mon serveur ssh est configuré pour demander un mot de passe ?
Non.
0K -- Windows: Microsoft's tax on computer illiterates. Hugo (né il y a 1 676 652 350 secondes)
Francois Lafont
On 06/11/2017 09:56 PM, Hugolino wrote:
Comment un fichier .bashrc pourrait-il être buggué ? Voici son contenu : 8<-----------8<---------8<----------8<----------8<----------8<----------8< # .bashrc # User specific aliases and functions NORMAL="[0;39m" RED="[1;31m" GREEN="[1;32m" YELLOW="[1;33m" BLUE="[1;34m" MAGENTA="[1;35m" CYAN="[1;36m" WHITE="[1;37m" # Source global definitions # deja fait dans ~/.bash_profile if [ -f /etc/bash.bashrc ]; then . /etc/bash.bashrc else if [ -f /etc/bashrc ]; then . /etc/bashrc fi fi #alias fm='echo "Installe postfix !!!!"' PATH=$PATH":/usr/sbin/:/sbin/:/usr/local/bin:/usr/games" export PATH FB_MAC_ADDRESS="00:07:CB:C5:BA:66" FB_NAME="FreeBox" export FB_MAC_ADDRESS export FB_NAME pi=$(echo "scale0; 4*a(1)" | bc -l) export pi alias sshh="ssh -p 8222" # Pour ftp chez free alias ftpfree="lftp " echo ${BLUE} /usr/bin/linux_logo -a echo if test -x /usr/local/bin/FortuneLogin >/dev/null then /usr/local/bin/FortuneLogin fi cat /home/hugo/taf/Bac-selon-Paul-Valery.txt | cowsay -W 68 | lolcat -a -s 1000 echo echo ${WHITE} " -=-=-=-=-=-=-=-" echo ${YELLOW} "You're logged as ${CYAN}"$(whoami)" ${YELLOW}!!" echo ${WHITE} " -=-=-=-=-=-=-=-" echo 8<-----------8<---------8<----------8<----------8<----------8<----------8<
Comme l'indique Nicolas, tous ces affichages, ça ne va pas. Je peux te le dire d'autant plus tranquillement que j'avais fait moi-même cette erreur. Dans mon cas, je m'en étais rendu compte car ça me fichait en l'air des commandes scp. Il faut que tu ajoutes une condition à ces affichages : afficher des messages uniquement lorsque ton shell bash est interactif. Et par conséquent, si c'est un shell non interactif, ne rien afficher. Ensuite, pour savoir si ton shell bash est interactif, tu peux par exemple utiliser la variable $- : le shell est interactif ssi la variable $- contient le caractère "i". Du coup, perso, j'ai mis ceci dans mon .bashrc : if printf '%sn ' "$-" | grep -q 'i' then # C'est un shell interactif. # On peut afficher des messages rigolos. :p fi Après, il y a peut-être mieux (je suis preneur de toute remarque constructive) mais en pratique ça semble bien marcher pour moi. -- François Lafont
On 06/11/2017 09:56 PM, Hugolino wrote:
Comment un fichier .bashrc pourrait-il être buggué ?
Voici son contenu :
8<-----------8<---------8<----------8<----------8<----------8<----------8<
# Source global definitions
# deja fait dans ~/.bash_profile
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
else
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
fi
Comme l'indique Nicolas, tous ces affichages, ça ne va pas.
Je peux te le dire d'autant plus tranquillement que j'avais
fait moi-même cette erreur. Dans mon cas, je m'en étais rendu
compte car ça me fichait en l'air des commandes scp.
Il faut que tu ajoutes une condition à ces affichages : afficher
des messages uniquement lorsque ton shell bash est interactif.
Et par conséquent, si c'est un shell non interactif, ne rien
afficher.
Ensuite, pour savoir si ton shell bash est interactif, tu peux
par exemple utiliser la variable $- : le shell est interactif
ssi la variable $- contient le caractère "i".
Du coup, perso, j'ai mis ceci dans mon .bashrc :
if printf '%sn ' "$-" | grep -q 'i'
then
# C'est un shell interactif.
# On peut afficher des messages rigolos. :p
fi
Après, il y a peut-être mieux (je suis preneur de toute remarque
constructive) mais en pratique ça semble bien marcher pour moi.
Comment un fichier .bashrc pourrait-il être buggué ? Voici son contenu : 8<-----------8<---------8<----------8<----------8<----------8<----------8< # .bashrc # User specific aliases and functions NORMAL="[0;39m" RED="[1;31m" GREEN="[1;32m" YELLOW="[1;33m" BLUE="[1;34m" MAGENTA="[1;35m" CYAN="[1;36m" WHITE="[1;37m" # Source global definitions # deja fait dans ~/.bash_profile if [ -f /etc/bash.bashrc ]; then . /etc/bash.bashrc else if [ -f /etc/bashrc ]; then . /etc/bashrc fi fi #alias fm='echo "Installe postfix !!!!"' PATH=$PATH":/usr/sbin/:/sbin/:/usr/local/bin:/usr/games" export PATH FB_MAC_ADDRESS="00:07:CB:C5:BA:66" FB_NAME="FreeBox" export FB_MAC_ADDRESS export FB_NAME pi=$(echo "scale0; 4*a(1)" | bc -l) export pi alias sshh="ssh -p 8222" # Pour ftp chez free alias ftpfree="lftp " echo ${BLUE} /usr/bin/linux_logo -a echo if test -x /usr/local/bin/FortuneLogin >/dev/null then /usr/local/bin/FortuneLogin fi cat /home/hugo/taf/Bac-selon-Paul-Valery.txt | cowsay -W 68 | lolcat -a -s 1000 echo echo ${WHITE} " -=-=-=-=-=-=-=-" echo ${YELLOW} "You're logged as ${CYAN}"$(whoami)" ${YELLOW}!!" echo ${WHITE} " -=-=-=-=-=-=-=-" echo 8<-----------8<---------8<----------8<----------8<----------8<----------8<
Comme l'indique Nicolas, tous ces affichages, ça ne va pas. Je peux te le dire d'autant plus tranquillement que j'avais fait moi-même cette erreur. Dans mon cas, je m'en étais rendu compte car ça me fichait en l'air des commandes scp. Il faut que tu ajoutes une condition à ces affichages : afficher des messages uniquement lorsque ton shell bash est interactif. Et par conséquent, si c'est un shell non interactif, ne rien afficher. Ensuite, pour savoir si ton shell bash est interactif, tu peux par exemple utiliser la variable $- : le shell est interactif ssi la variable $- contient le caractère "i". Du coup, perso, j'ai mis ceci dans mon .bashrc : if printf '%sn ' "$-" | grep -q 'i' then # C'est un shell interactif. # On peut afficher des messages rigolos. :p fi Après, il y a peut-être mieux (je suis preneur de toute remarque constructive) mais en pratique ça semble bien marcher pour moi. -- François Lafont
Francois Lafont
On 06/11/2017 10:45 PM, Francois Lafont wrote:
if printf '%sn ' "$-" | grep -q 'i'
Oups, il y a un petit espace en trop. C'est : if printf '%sn' "$-" | grep -q 'i' -- François Lafont
Oups, il y a un petit espace en trop. C'est : if printf '%sn' "$-" | grep -q 'i' -- François Lafont
Lucas Levrel
Le 11 juin 2017, à 21:56, Hugolino a écrit :
Comment un fichier .bashrc pourrait-il être buggué ?
Comme ça :
echo ${BLUE} /usr/bin/linux_logo -a echo if test -x /usr/local/bin/FortuneLogin >/dev/null then /usr/local/bin/FortuneLogin fi cat /home/hugo/taf/Bac-selon-Paul-Valery.txt | cowsay -W 68 | lolcat -a -s 1000 echo echo ${WHITE} " -=-=-=-=-=-=-=-" echo ${YELLOW} "You're logged as ${CYAN}"$(whoami)" ${YELLOW}!!" echo ${WHITE} " -=-=-=-=-=-=-=-" echo
.bashrc c'est pour configurer bash, pas pour afficher un arbre de Noël ! Tu dois tester que ton shell est interactif avant de le faire. man bash : PS1 is set and $- includes i if bash is interactive, allowing a shell script or a startup file to test this state. -- LL Ἕν οἶδα ὅτι οὐδὲν οἶδα (Σωκράτης) C'est mieux avé les accents (F. Patte)
Le 11 juin 2017, à 21:56, Hugolino a écrit :
Comment un fichier .bashrc pourrait-il être buggué ?
Comme ça :
echo ${BLUE}
/usr/bin/linux_logo -a
echo
if test -x /usr/local/bin/FortuneLogin >/dev/null
then
/usr/local/bin/FortuneLogin
fi
.bashrc c'est pour configurer bash, pas pour afficher un arbre de Noël !
Tu dois tester que ton shell est interactif avant de le faire.
man bash :
PS1 is set and $- includes i if bash is interactive, allowing
a shell script or a startup file to test this state.
--
LL
Ἕν οἶδα ὅτι οὐδὲν οἶδα (Σωκράτης)
C'est mieux avé les accents (F. Patte)
Comment un fichier .bashrc pourrait-il être buggué ?
Comme ça :
echo ${BLUE} /usr/bin/linux_logo -a echo if test -x /usr/local/bin/FortuneLogin >/dev/null then /usr/local/bin/FortuneLogin fi cat /home/hugo/taf/Bac-selon-Paul-Valery.txt | cowsay -W 68 | lolcat -a -s 1000 echo echo ${WHITE} " -=-=-=-=-=-=-=-" echo ${YELLOW} "You're logged as ${CYAN}"$(whoami)" ${YELLOW}!!" echo ${WHITE} " -=-=-=-=-=-=-=-" echo
.bashrc c'est pour configurer bash, pas pour afficher un arbre de Noël ! Tu dois tester que ton shell est interactif avant de le faire. man bash : PS1 is set and $- includes i if bash is interactive, allowing a shell script or a startup file to test this state. -- LL Ἕν οἶδα ὅτι οὐδὲν οἶδα (Σωκράτης) C'est mieux avé les accents (F. Patte)
Hugolino
Le 11-06-2017, Francois Lafont a écrit :
On 06/11/2017 09:56 PM, Hugolino wrote:
Comment un fichier .bashrc pourrait-il être buggué ? Voici son contenu : 8<-----------8<---------8<----------8<----------8<----------8<----------8< [...] cat /home/hugo/taf/Bac-selon-Paul-Valery.txt | cowsay -W 68 | lolcat -a -s 1000 [...] 8<-----------8<---------8<----------8<----------8<----------8<----------8<
Comme l'indique Nicolas, tous ces affichages, ça ne va pas. Je peux te le dire d'autant plus tranquillement que j'avais fait moi-même cette erreur. Dans mon cas, je m'en étais rendu compte car ça me fichait en l'air des commandes scp. Il faut que tu ajoutes une condition à ces affichages : afficher des messages uniquement lorsque ton shell bash est interactif. Et par conséquent, si c'est un shell non interactif, ne rien afficher. Ensuite, pour savoir si ton shell bash est interactif, tu peux par exemple utiliser la variable $- : le shell est interactif ssi la variable $- contient le caractère "i". Du coup, perso, j'ai mis ceci dans mon .bashrc : if printf '%sn' "$-" | grep -q 'i' then # C'est un shell interactif. # On peut afficher des messages rigolos. :p fi Après, il y a peut-être mieux (je suis preneur de toute remarque constructive) mais en pratique ça semble bien marcher pour moi.
C'est ce que j'ai fait, et maintenant, ça marche : je peux faire un rsync via ssh. Merci à toi, à NIcolas et à Lucas. -- Windows: Microsoft's tax on computer illiterates. Hugo (né il y a 1 676 666 928 secondes)
Le 11-06-2017, Francois Lafont <francois.lafont@nospam.invalid> a écrit :
On 06/11/2017 09:56 PM, Hugolino wrote:
Comment un fichier .bashrc pourrait-il être buggué ?
Voici son contenu :
8<-----------8<---------8<----------8<----------8<----------8<----------8<
[...]
cat /home/hugo/taf/Bac-selon-Paul-Valery.txt | cowsay -W 68 | lolcat -a -s 1000
[...]
8<-----------8<---------8<----------8<----------8<----------8<----------8<
Comme l'indique Nicolas, tous ces affichages, ça ne va pas.
Je peux te le dire d'autant plus tranquillement que j'avais fait
moi-même cette erreur. Dans mon cas, je m'en étais rendu compte car
ça me fichait en l'air des commandes scp.
Il faut que tu ajoutes une condition à ces affichages : afficher des
messages uniquement lorsque ton shell bash est interactif.
Et par conséquent, si c'est un shell non interactif, ne rien
afficher.
Ensuite, pour savoir si ton shell bash est interactif, tu peux par
exemple utiliser la variable $- : le shell est interactif ssi la
variable $- contient le caractère "i".
Du coup, perso, j'ai mis ceci dans mon .bashrc :
if printf '%sn' "$-" | grep -q 'i'
then
# C'est un shell interactif.
# On peut afficher des messages rigolos. :p
fi
Après, il y a peut-être mieux (je suis preneur de toute remarque
constructive) mais en pratique ça semble bien marcher pour moi.
C'est ce que j'ai fait, et maintenant, ça marche : je peux faire un
rsync via ssh.
Merci à toi, à NIcolas et à Lucas.
--
Windows: Microsoft's tax on computer illiterates.
Hugo (né il y a 1 676 666 928 secondes)
Comment un fichier .bashrc pourrait-il être buggué ? Voici son contenu : 8<-----------8<---------8<----------8<----------8<----------8<----------8< [...] cat /home/hugo/taf/Bac-selon-Paul-Valery.txt | cowsay -W 68 | lolcat -a -s 1000 [...] 8<-----------8<---------8<----------8<----------8<----------8<----------8<
Comme l'indique Nicolas, tous ces affichages, ça ne va pas. Je peux te le dire d'autant plus tranquillement que j'avais fait moi-même cette erreur. Dans mon cas, je m'en étais rendu compte car ça me fichait en l'air des commandes scp. Il faut que tu ajoutes une condition à ces affichages : afficher des messages uniquement lorsque ton shell bash est interactif. Et par conséquent, si c'est un shell non interactif, ne rien afficher. Ensuite, pour savoir si ton shell bash est interactif, tu peux par exemple utiliser la variable $- : le shell est interactif ssi la variable $- contient le caractère "i". Du coup, perso, j'ai mis ceci dans mon .bashrc : if printf '%sn' "$-" | grep -q 'i' then # C'est un shell interactif. # On peut afficher des messages rigolos. :p fi Après, il y a peut-être mieux (je suis preneur de toute remarque constructive) mais en pratique ça semble bien marcher pour moi.
C'est ce que j'ai fait, et maintenant, ça marche : je peux faire un rsync via ssh. Merci à toi, à NIcolas et à Lucas. -- Windows: Microsoft's tax on computer illiterates. Hugo (né il y a 1 676 666 928 secondes)
Benoit Izac
Bonjour, Le 11/06/2017 à 22:47, Francois Lafont a écrit dans le message <593dac49$0$3298$ :
if printf '%sn ' "$-" | grep -q 'i'
Oups, il y a un petit espace en trop. C'est : if printf '%sn' "$-" | grep -q 'i'
Je n'utilise pas bash mais le fichier /etc/skel/.bashrc de ma distribution contient : ---------------------------------------------------------------------- # If not running interactively, don't do anything [[ $- != *i* ]] && return alias ls='ls --color=auto' PS1='[ W]$ ' ---------------------------------------------------------------------- Ça me parait pas mal. -- Benoit Izac
Bonjour,
Le 11/06/2017 à 22:47, Francois Lafont a écrit dans le message
<593dac49$0$3298$426a34cc@news.free.fr> :
if printf '%sn ' "$-" | grep -q 'i'
Oups, il y a un petit espace en trop. C'est :
if printf '%sn' "$-" | grep -q 'i'
Je n'utilise pas bash mais le fichier /etc/skel/.bashrc de ma
distribution contient :
----------------------------------------------------------------------
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
alias ls='ls --color=auto'
PS1='[u@h W]$ '
----------------------------------------------------------------------
Bonjour, Le 11/06/2017 à 22:47, Francois Lafont a écrit dans le message <593dac49$0$3298$ :
if printf '%sn ' "$-" | grep -q 'i'
Oups, il y a un petit espace en trop. C'est : if printf '%sn' "$-" | grep -q 'i'
Je n'utilise pas bash mais le fichier /etc/skel/.bashrc de ma distribution contient : ---------------------------------------------------------------------- # If not running interactively, don't do anything [[ $- != *i* ]] && return alias ls='ls --color=auto' PS1='[ W]$ ' ---------------------------------------------------------------------- Ça me parait pas mal. -- Benoit Izac
Francois Lafont
On 06/12/2017 12:37 AM, Benoit Izac wrote:
Je n'utilise pas bash mais le fichier /etc/skel/.bashrc de ma distribution contient : ---------------------------------------------------------------------- # If not running interactively, don't do anything [[ $- != *i* ]] && return alias ls='ls --color=auto' PS1='[ W]$ ' ---------------------------------------------------------------------- Ça me parait pas mal.
En effet c'est mieux que mon grep qui crée un nouveau processus. Après j'allais arguer que mon if avait l'avantage d'être compatible shell POSIX alors que [[ $- != *i* ]] est sans doute une basherie mais bon... une basherie dans un .bashrc c'est pas incohérent. ;) -- François Lafont
On 06/12/2017 12:37 AM, Benoit Izac wrote:
Je n'utilise pas bash mais le fichier /etc/skel/.bashrc de ma
distribution contient :
----------------------------------------------------------------------
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
alias ls='ls --color=auto'
PS1='[u@h W]$ '
----------------------------------------------------------------------
Ça me parait pas mal.
En effet c'est mieux que mon grep qui crée un nouveau processus.
Après j'allais arguer que mon if avait l'avantage d'être
compatible shell POSIX alors que [[ $- != *i* ]] est sans doute
une basherie mais bon... une basherie dans un .bashrc c'est pas
incohérent. ;)
Je n'utilise pas bash mais le fichier /etc/skel/.bashrc de ma distribution contient : ---------------------------------------------------------------------- # If not running interactively, don't do anything [[ $- != *i* ]] && return alias ls='ls --color=auto' PS1='[ W]$ ' ---------------------------------------------------------------------- Ça me parait pas mal.
En effet c'est mieux que mon grep qui crée un nouveau processus. Après j'allais arguer que mon if avait l'avantage d'être compatible shell POSIX alors que [[ $- != *i* ]] est sans doute une basherie mais bon... une basherie dans un .bashrc c'est pas incohérent. ;) -- François Lafont