Je surveille un site Web et je voudrais savoir s'il existe un moyen de visualiser les images via ssh plutôt que de charger le site Web à chaque fois.
Réponses
Trop de publicités?Vous n'avez pas dit à partir de quel système d'exploitation vous vous connectez. Si vous utilisez un *nix avec un serveur X, vous pouvez utiliser la redirection X de ssh. Cela vous permettra d'exécuter des applications graphiques sur le serveur distant et de les faire afficher sur la machine locale. Par exemple :
ssh -Y user@server
eog pictures/foo.png
En supposant que le serveur a eog
installé, l'image devrait s'ouvrir et s'afficher sur votre écran.
Pour référence future, lorsque vous posez des questions sur ce site, il est bon de préciser le système que vous utilisez, car la réponse correcte en dépendra souvent.
J'ai essayé quelques-unes des méthodes énumérées par d'autres réponses sur cette page, et je les ai essayées à la fois sur Ubuntu 20 et MacOS Mojave (ma machine est une abomination à double démarrage). Sur les deux systèmes, j'ai trouvé que l'utilisation de l'option -X
drapeau avec ssh
そして eog
fonctionne, mais est un peu lente et maladroite. La redirection X peut convenir si vous parcourez de petits répertoires, mais peut devenir complètement inutilisable si le répertoire dans lequel vous travaillez contient de grandes quantités de données.
La meilleure méthode que j'ai vue est sshfs
. C'est un jeu d'enfant à mettre en place et je l'ai trouvé extrêmement flexible. En gros, il monte le système de fichiers distant comme un lecteur local, ce qui vous permet soit de visualiser les fichiers distants, soit de transférer des fichiers entre votre runtime local et l'hôte distant. scp
(bien que scp
est une compétence utile à connaître).
Ubuntu
Je ne suis pas sûr des versions précédentes, mais Ubuntu 20.04 était livré avec sshfs
. Si votre version d'Ubuntu ne l'a pas, vous pouvez l'installer avec
sudo apt install sshfs
Pour l'utiliser, vous aurez besoin d'un répertoire vide. J'ai le mien dans mon répertoire personnel et je l'ai nommé sc
. Pour le configurer, vous exécutez la commande :
sshfs -o follow_symlinks <user>@<server address>:/ ~/sc
Voilà ! Lorsque vous utilisez votre explorateur de fichiers ou votre terminal pour ouvrir sc
vous verrez que le lecteur distant est monté.
MacOS
Les étapes sont presque les mêmes que celles pour Linux/Ubuntu. La différence ici est que MacOS n'est pas livré avec sshfs
installé, et sshfs
nécessite également certaines dépendances qui ne sont pas incluses dans MacOS. Donc d'abord, nous installons ces dépendances avec :
brew install osxfuse
Maintenant, nous pouvons installer sshfs
avec :
brew install sshfs
Ensuite, pour monter le disque distant, vous devez créer un répertoire local vide - j'appelle le mien sc
et il est situé dans mon répertoire personnel. Ensuite, vous montez le disque distant dans le répertoire distant avec
sshfs -o follow_symlinks <user>@<server address>:/ ~/sc
Lorsque vous ouvrez sc
avec votre explorateur de fichiers préféré (tel que Finder sous MacOS), vous trouverez le lecteur distant, probablement sous le nom de OSXFUSE Volume 0...
J'espère que cela vous aidera !
Il s'agit d'un problème commun aux chercheurs en vision par ordinateur. J'ai créé un petit script ( https://github.com/nicodjimenez/ImgView ) que j'utilise pour servir les images dans un répertoire sur une machine distante via python run.py -d path/to/image/dir/
. Ensuite, j'utilise le tunneling ssh pour transférer un port local vers le port distant sur lequel je fais tourner le serveur, puis je visualise les images sur ma machine locale en faisant pointer mon navigateur web sur mon port local, par défaut. http://0.0.0.0:8000/ . Cette approche est la plus souple pour l'affichage d'images via ssh car vous pouvez contrôler l'apparence de l'affichage.
Sous Linux, vous pouvez rediriger la sortie ssh. Avec l'aide d'un visualiseur d'images capable de lire depuis l'entrée standard (cf. Existe-t-il un visualiseur d'images qui prend des images sur STDIN ? ) et le Pipe d'Unix |
j'obtiens :
ssh remote_host "cat /remote/path/to/image" | display
PS : ceci nécessite le programme d'affichage d'ImageMagick sur l'hôte local. La commande entre guillemets est exécutée par ssh sur l'hôte distant. Ou pour d'autres visionneurs d'images (ici le visionneur d'images Gnome eog) :
FIFO=$(mktemp -u);
ssh remote_host "cat /remote/path/to/image" > "$FIFO";
eog "$FIFO" && rm "$FIFO";
- Réponses précédentes
- Plus de réponses