Tool um maximale SSH- und Shell-Kommandolänge zu bestimmen

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
buhtz
Beiträge: 1105
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Tool um maximale SSH- und Shell-Kommandolänge zu bestimmen

Beitrag von buhtz » 11.11.2022 10:56:33

Über die maximale Länge eines Kommandos per SSH oder auch Shell ist viel im Netz zu finden. Da sich die Systeme unterscheiden und es viele Variablen gibt, wird am Ende immer geraten, es selbst auszuprobieren.

Aber da es so ein weit verbreitetes Problem zu sein scheint, frage ich mich, ob es nicht ein Tool gibt, dass mir die maximal mögliche Länge eines Kommandostrings in einer spezifischen Situation zurückgibt?

Ich hatte gelesen, dass in der Regel die Bash der limitierende Faktor ist und nicht SSH. Aber so sicher bin ich mir da auch nicht. Gibt es auch Situationen in denen das SSH-Limit for dem Bash/Shell-Limit erreicht werden könnte?
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

Benutzeravatar
MSfree
Beiträge: 10721
Registriert: 25.09.2007 19:59:30

Re: Tool um maximale SSH- und Shell-Kommandolänge zu bestimmen

Beitrag von MSfree » 11.11.2022 11:26:59

Code: Alles auswählen

getconf ARG_MAX

buhtz
Beiträge: 1105
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Re: Tool um maximale SSH- und Shell-Kommandolänge zu bestimmen

Beitrag von buhtz » 14.11.2022 12:56:21

X-Post: https://unix.stackexchange.com/q/724813/136851
MSfree hat geschrieben: ↑ zum Beitrag ↑
11.11.2022 11:26:59

Code: Alles auswählen

getconf ARG_MAX
Das scheint für die shell zu gelten.

SSH macht vorher die Grätsche.

Code: Alles auswählen

Python 3.9.2 (default, Feb 28 2021, 17:03:44) 
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from subprocess import Popen
>>> Popen(['ssh', 'user@localhost', 'echo', '{}'.format('T' * 131067)])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.9/subprocess.py", line 951, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib/python3.9/subprocess.py", line 1823, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
OSError: [Errno 7] Argument list too long: 'ssh'
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

Antworten