Question

J'ai une application qui exécute bien les commandes sur un serveur Linux via SSH. Lorsque je me connecte à un serveur Solaris, les choses ne fonctionnent pas. Il semble que la ligne de commande Solaris soit limitée à 267 caractères.

Y a-t-il un moyen de changer cela?

Mise à jour: Comme indiqué précédemment, il s’agit d’une limitation du shell par défaut pour Solaris (sh) par rapport à Linux (bash). La question est donc de savoir s'il y a un moyen de changer la limite de sh.

Était-ce utile?

La solution

Je pense (bien que cela puisse être faux) que cela soit lié au shell par défaut auquel vous vous connectez. Si vous modifiez Solaris sur le même shell que vous utilisez sous Linux, cela résout-il le problème?

Veuillez commenter s'il existe un meilleur moyen de parvenir à une solution et je modifierai ma réponse.

Autres conseils

Vous pouvez voir votre longueur de commande actuelle maximum avec cette commande:

$ getconf ARG_MAX
1048320

J'ai créé un script qui détermine la longueur maximale d'une commande à distance . Comme Craig l'a suggéré, le mieux est de diriger la commande vers la norme, si cela est possible.

Selon moi, vos choix sont les suivants:

  1. Modifiez le shell que vous utilisez sous Solaris en modifiant les paramètres par défaut de l'utilisateur.
  2. Ne changez pas le shell, mais changez la façon dont vous exécutez les commandes.

La première est facile, mais nécessite un administrateur pour effectuer une modification pour chaque combinaison utilisateur / machine, et peut affecter d'autres programmes. Changer la façon dont vous exécutez les commandes sera plus rapide et plus facile à gérer à long terme. Par exemple, supposons que vous deviez exécuter ce qui suit:

/usr/bin/foo with a very long list of options and parameters

À l'heure actuelle, vous faites probablement quelque chose comme ceci:

ssh user@machine "/usr/bin/foo with a very long list of options and parameters"

Mais vous pouvez également effectuer les opérations suivantes:

echo "/usr/bin/foo with a very long list of options and parameters" | \
ssh user@machine "/bin/bash"

Cela fera ce que vous voulez.

Lorsque je lance configure sur Solaris 10 et que le script configure affiche un chiffre indiquant la longueur de la ligne de commande, la réponse se situe normalement dans la plage des 256 Ko. Les shells standard sur Solaris n’ont très certainement pas de limite inférieure à 300 octets.

Cela dit, je ne sais pas quel est votre problème. La limite est peut-être plus faible avec Solaris SSH. Je n'ai pas rencontré le problème, mais j'ai tendance à utiliser SSH comme moyen de se connecter directement (de manière interactive) plutôt que d'exécuter de longues commandes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top