I know conky can monitor my personal computer, but can it monitor the other Linux servers I have on the network? I'd like to see data on CPU and memory usage and some critical processes each server uses. For instance, one server is our MySQL server, so I'd like to display the CPU and memory usage for this server, how much resources the mysqld processes consumes and the network consumption. For another server, some other information should be display according to its use.


I'm not sure if there's a way to do this directly from within conky. I ran into a similar situation earlier and solved it via SSH. Basically, you set up an unprivileged user account with passwordless SSH login and do this:

${execi 1 ssh dummy_user@server_name <monitoring_command>}

The "1" means the output will be updated every second. You should substitute with the appropriate update interval you'd like and whatever monitoring command you'd like to use.

  • thanks for your input! I thought I'd need to do something like this as well. I just hoped for a more secured solution since one server is our DB, the other is the main production and the third I want to connect is testing. – gtludwig Mar 5 '13 at 13:49
  • I was just thinking, maybe I can store the credentials on a file on my /home and have conky use this file for each ssh connection? – gtludwig Mar 5 '13 at 13:52
  • I don't see why this is not secure; should be secure enough as long as you keep the dummy user's privileges low. I think storing your credentials on a file is even more risky... – Joseph R. Mar 5 '13 at 18:28
  • True enough. Since this is still low priority to me, so I'll poke around a bit more. Also I accepted your previous answer. Thanks again. – gtludwig Mar 5 '13 at 19:48

The traditional way to query a remote machine for performance stats is to send an appropriate SNMP query.

If you set up snmpd on your servers you'll be able to pull all kinds of management data.

  • hmm, that's definitely worth a closer look into. thanks for this input as well. – gtludwig Mar 6 '13 at 11:46

You could do something like this:

${execi1 sshpass -p <yourpasssword> ssh dummy_user@server_name <monitoring_command>}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.