A Telegram Bot:
- Commands
/stats
- gives summed statistics about memory \ disk \ processes (will improve)/shell
- goes into the mode of executing shell commands & sends you the output/memgraph
- plots a graph of memory usage for a past period and sends you a picture of the graph/setmem
- set memory threshold (%) to monitor and notify if memory usage goes above it/setpoll
- set polling interval in seconds (higher than 10)
- Monitors memory usage and if it reaches above the set threshold = sends you warning message
Example summary: Gif
Example shell command output as a message from the bot:
Example graph sent by bot: Gif
- Python 3+
- Telepot
- Psutil
- Make sure to install it for Python 3+
- In order to make sure that
pip
installs packages for the 3+ version:curl -O https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
- After that
pip install psutil
- Also Stackoverflow question about that here
- matplotlib
sudo apt-get install python3-matplotlib
- Bot key &
tokens.py
- Hide all the keys and admin variables in
tokens.py
. Use it only for sensitive variables. Avoid creating functions not to clutter the namespaces through the import. - Get a key from the Bot Father
- Clone that repo
- In the folder with the cloned repo create a file
tokens.py
- It's added to the
.gitignore
so you don't commit your own (and I don't commit mine:)
- It's added to the
- In that file put a string variable
telegrambot
which equals your key- For example:
telegrambot = "000000000:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
- For example:
- Hide all the keys and admin variables in
python3 servstatsbot.py
- Fix included file in the repo:
serverstatsbot.service
- Place that file in
/lib/systemd/system/
- Reload SystemD daemon service:
sudo systemctl daemon-reload
- Enable autostart after reboot
sudo systemctl enable serverstatsbot.service
- Start Service
sudo systemctl start serverstatsbot.service
- See status Service
sudo systemctl status serverstatsbot.service
- Enable autostart after reboot
You have to set a variable adminchatid
in tokens.py
to be equal your chat_id or multiple chat_id (if more people will use your bot).
For example:
adminchatid = [443355]
adminchatid = [443355, 55667788, 99884433]
I will reimplement this differently later.
I threw this code together within 10 minutes or so as a mockup to work on it later. But I think it's a nice bot idea and some of you guys might like this too. So please feel free to fork, pull, requests features! Can give contributors access! Would really love to see this bot grow some fat and brain:)
GB