Y a-t-il un moyen de faire un "ls" à distance comme "scp" fait une copie à distance dans un Shell linux standard ?
Réponses
Trop de publicités?Les réponses ci-dessus ne tiennent pas compte du moment où vous devez ajouter un mot de passe. Pour inclure le mot de passe et le nom d'utilisateur dans une seule commande, installez sshpass
.
Pour le Mac : $ brew install hudochenkov/sshpass/sshpass
Pour linux : sudo apt-get install sshpass -y
Ensuite :
$ sshpass -p your_password ssh user@hostname ls /path/to/dir/
Vous pouvez également sauvegarder les résultats :
$ sshpass -p your_password ssh user@hostname ls /path/to/dir/ > log.txt
Dans python3 :
import subprocess
cluster_login_email = 'user@hostname'
cluster_login_password = 'your_password'
path_to_files = '/path/to/dir/'
response = subprocess.run([
'sshpass', '-p', cluster_login_password, 'ssh', cluster_login_email, 'ls',
path_to_files], capture_output=True)
response = response.stdout.decode("utf-8").split('\n')
Je trouve que mon utilisation la plus fréquente est de récupérer le résultat de ls, une simple liste de fichiers sans toutes les permissions, dates et autres, et de la conserver dans un fichier local.
{ ssh me@host.com "cd /dir/of/interest; ls -1f *.txt;" } > /home/me/listoffiles.txt
Vous pouvez exécuter ce que vous voulez entre les guillemets. Tous les résultats sont enregistrés dans votre fichier texte local. Ou si vous voulez exécuter un gros script méchant sur le serveur et capturer toute sa sortie, même les erreurs :
{ ssh me@host.com <script.remote.sh } > /home/me/output.log 2>/home/me/output.err
- Réponses précédentes
- Plus de réponses