Commande à distance qui se comporte comme une commande locale

introduction

Je voulais une commande qui se comporte comme une commande locale car elle était nécessaire pour créer un stub, mais qui imprime en fait les résultats de la commande à distance.

environnement

OSX El Capitan

Comment utiliser

Enregistrez la source avec un nom de fichier de ls. Accordez l'autorisation d'exécution avec chmod + x ls. Tout ce que vous avez à faire, c'est ls.

la mise en oeuvre

#!/usr/bin/env python2.7
# -*- coding: utf-8 -*-

import sys
import os
from subprocess import call

argvs = sys.argv

param_hostname = '1.2.3.4'
param_username = 'docker'
param_port = '60000'
param_command = os.path.basename(argvs[0])
param_command_param = ' '.join(argvs[1:])

cmd = '/usr/bin/ssh -l %s -p %s %s %s %s' % (
        param_username, str(param_port), param_hostname, param_command, param_command_param)

call( cmd.strip().split(' ') )

résultat

butada-mac:remote_exec_like_a_local butada$ ./ls -l

référence

rien de spécial

Recommended Posts

Commande à distance qui se comporte comme une commande locale
Exécuter un script local sur un hôte distant
Un programme polyvalent qui formate les chaînes de commande Linux avec python
Exécutez une commande dans Go comme subprocess.call de Python (~, shell = True)
Un script qui affiche la pile CloudFormation en cours d'exécution comme un mannequin