So finden Sie tty, von dem aus ein bestimmtes cmd "scp" ausgeführt wird

11

Wie kann ich herausfinden, wer einen bestimmten Befehl ausgeführt hat und mit welchem ​​Terminal er ausgeführt wurde?


Original :

Wie kann ich wissen, dass bestimmte cmd von wem ausgeführt werden und über mein Terminal Bescheid wissen?

Jeff Schaller
quelle
1
Können Sie diese Frage umformulieren, damit sie etwas klarer ist?
1
Meinst du: "Mit welchem ​​ps-Befehl soll ich bestimmen, wer scp verwendet?" Das wäre ps -ef | grep scp
Michael Todd
Mögliches Duplikat der Überwachungsaktivität auf meinem Computer.
Gilles 'SO - hör auf böse zu sein'

Antworten:

7

Um zu sehen, welche Befehle ausgeführt werden, verwenden Sie "ps -ef". Dies wird Ihnen sagen, was jeder tut, was normalerweise zu viele Informationen sind.

Um es einzugrenzen, um herauszufinden, wer einen bestimmten Befehl ausführt, können Sie einen "grep" -Filter wie folgt hinzufügen:

ps -ef | grep scp

Dies gibt alle scp-Befehle zurück, kann aber auch den Befehl grep zurückgeben, der nach scp sucht, sowie alle anderen Befehle mit den darin eingebetteten Buchstaben scp, da grep nur mit der Zeichenfolge übereinstimmt. Daher müssen Sie möglicherweise mit dem Ausdruck "grep" klug werden (häufig müssen Sie ihn nur zitieren und ein Leerzeichen hinzufügen:

ps -ef | grep "scp "

oder noch besser reguläre Ausdrücke nutzen und:

ps -ef | grep "[s]cp "

Wenn Sie den Benutzer kennen und nur wissen möchten, was er ausführt, ist "ps -fu" Ihr Freund. Zum Beispiel

ps -fu tom

Was natürlich mit grep kombiniert werden kann, um Toms scp-Prozesse zu erhalten:

ps -fu tom | grep "[s]cp "

Spalte 6 ist die tty.


quelle
1
+1 für den Trick 'grep "[s] cp"' - das verwende ich in einem Skript, das ich 'procname' nenne.
Jonathan Leffler
3

Sie können ttyden Dateinamen des an die Standardeingabe angeschlossenen Terminals ermitteln.

Für den letzten Teil Ihrer Frage sudooder suund dann grep -c 'command' /home/username/.bash_history.

Alan Haggai Alavi
quelle