J'ai besoin d'effectuer des calculs sur une machine à laquelle je ne peux accéder qu'à distance, mais qui sert également de poste de travail. Ils sont nombreux et je veux en choisir un "gratuit". Free signifie dans ce cas que personne n'est connecté localement.
Mon premier essai était la commande who
, mais pour une raison quelconque, elle ne répertorie que les utilisateurs "sélectionnés" et je ne peux pas vraiment savoir comment ils ont été sélectionnés. Essayez ensuite: ps aux | cut -d " " -f1 | sort | uniq
: il est préférable d’afficher un groupe de démons mais également l’utilisateur local qui n’a pas été affiché par who
.
Ma solution actuelle est d'aller faire ps aux | grep "gnome-session"
qui est meilleur mais qui me donne quand même beaucoup de bric-à-brac. Idéalement, je recherche quelque chose que je puisse inclure dans mon profil ssh et qui me prévient des utilisateurs locaux (actifs) lorsque je me connecte.
who
ni w
n'ont renvoyé l'utilisateur local. Est-ce un comportement inattendu?uptime
d'autre part m'a montré la bonne quantité d'utilisateurs (utilisateurs système moins et locaux comme root)finger
n'est pas installéUtilisez w
De la page de manuel w :
Montrer qui est connecté et ce qu'ils font.
Exemple de sortie:
$ w
09:15:10 up 43 min, 2 users, load average: 0.74, 0.38, 0.24
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
kucing tty7 :0 08:32 43:15m 57.73s 0.18s x-session-manager
kucing pts/0 :0.0 08:48 0.00s 0.24s 0.00s w´
La commande finger
est-elle installée ou pourrait-elle l'être? Cela devrait donner une liste de tous les utilisateurs qui sont connectés et d'où ils viennent (c'est-à-dire une autre machine, ou directement sur la machine), et devrait également vous dire depuis combien de temps cet utilisateur est inactif.
Voir le page de manuel ubuntu finger pour plus d'informations.
J'irais avec:
who | cut -d' ' -f1 | sort | uniq
Cela montrera une liste de vrais utilisateurs. Si la liste est vide - la machine est dans l'état déconnecté et attend que quelqu'un se connecte.ps aux
affiche également certains utilisateurs du système, que vous ne voulez probablement pas voir.
il regarde dans/var/log/wtmp et affiche un journal des derniers utilisateurs connectés, y compris ceux actuellement connectés.
Considérez simplement la plus grande gentillesse pour vos calculs. Devrait éviter de monopoliser les ressources pour tout autre utilisateur pouvant être connecté.
Nice -n 19 your_calculation_command
Ma réponse à la liste de chaque utilisateur connecté, de manière unique.
w | tail -n +3 | cut -d " " -f1 | sort | uniq
Une tentative rapide et sale:
ps au --no-heading | cut -d " " -f1 | uniq
J'aime celui la:
for i in $(ls /dev/pts/*);do echo "TTY $i - $(ps e -t $i|grep -oP "(?<=(RUSER\=))[a-z]*"|uniq)";done ; echo -e '\n+++\n'; for i in $(pgrep ssh);do pstree -paul $i;done