J'ai un script Bash avec des commandes SCP à l'intérieur.
Cela fonctionne très bien mais si j'essaie de rediriger mon stdout avec " ./ myscript.sh> journal strong>", seuls mes échos explicites sont affichés dans le fichier "Journal".
La sortie SCP est manquante. if $C_SFTP; then
scp -r $C_SFTP_USER@$C_SFTP_HOST:$C_SOURCE "$C_TMPDIR"
fi
4 Réponses :
Qu'est-ce qui a du sens, cependant, Rediriger sa sortie d'erreur dans le fichier au cas où il y a des erreurs. Vous voudrez peut-être désactiver la sortie standard si vous le souhaitez. P> Il y a deux façons de faire cela. Tout d'abord, c'est d'appeler votre script avec la redirection de STDERR et de STDOUT dans le fichier journal: p> SCP code> utilise un terminal interactif afin d'imprimer cette barre de progression de fantaisie. L'impression que la sortie à un fichier n'a pas de sens du tout, donc
SCP code> détecte lorsque sa sortie est redirigée vers une autre autre qu'un terminal et désactive cette sortie.
#!/bin/bash
set -e
...
si ["$ ret" -ne "0"]; Ensuite .. Code> Il n'y a pas besoin de "environ 0,
-ne / -eq code> testera des valeurs entières.
@Anders: juste une habitude. Changé cela.
Malheureusement, la sortie de SCP ne peut pas simplement être redirigée vers stdout qui semble-t-elle.
Je voulais obtenir la vitesse de transfert moyenne de mon transfert SCP, et la seule façon dont je pouvais réussir à faire cela était d'envoyer STDERR et STDOUT à un fichier, puis pour echo le fichier sur stdout à nouveau. p>
par exemple: p> ce qui entraînerait la sortie suivante: P > Starting with upload test at Thu Sep 20 13:04:44 SAST 2012:
Transferred: sent 10191920, received 5016 bytes, in 15.7 seconds
Bytes per second: sent 650371.2, received 320.1
Done with upload test at Thu Sep 20 13:05:04 SAST 2012.
Il n'y a pas besoin de fichier temporaire si vous redirigez starr to stdout ( 2> & 1 code>) avant la tuyauterie STDOUT vers Grep, comme:
SCP -V ... 2> & 1 | grep -i octets code>.
Vous testez simplement votre TTY avec:
[ ~]# scp <user>@<host>:<source> /dev/tty 2>/dev/null
J'essayais de filtrer "l'ajout de manière permanente / Dev / TTy Code> a fonctionné pour moi:
SCP -O StricthostykeyChecking = Aucun remotes de télécommande localFile: / Dir / Télécommande 2> & 1> / dev / tty | grep -v "AVERTISSEMENT: ajouté de manière permanente" code>.
J'ai trouvé une solution rugueuse pour SCP: selon la page SCP Man, Si vous n'avez pas besoin de toute la sortie de débogage d'authentification, rediriger la sortie sur stdout et grep dehors les bits que vous ne voulez pas: < / p> sortie finale est quelque chose comme ceci: p> plus, ceci peut être redirigé vers un fichier: p> -q code> (silencieux) désactive le compteur de progression, ainsi que la désactivation toutes les autres sorties. Ajouter
-v code> (Verbose) également, vous obtenez des tas de sortie ... et le progresseur est toujours désactivé! La désactivation du compteur de progression vous permet de rediriger la sortie dans un fichier. P>