Skip to content

🐧 Use power of POSIX shell for process automation.

License

Notifications You must be signed in to change notification settings

zhibirc/automa-sh-ion

Repository files navigation

automa-sh-ion

Oftentimes we have a lot of tedious day-by-day routine such as collecting working activity for reports, backup something to somewhere or similar stuff. Automation is a good start point to optimize your day!


GitHub Maintenance Platform Platform PRs Welcome HitCount ShellCheck Pylint

Table of contents

  • aliases: macros-like small pieces of daily used routine logic under the short names

  • templates: not ready-to-use instruments, but structural or implementation examples of some kind

    • bot: Telegram Bot common implementation which use pyTelegramBotAPI
    • config: global config for sharing special information among included tools
  • tools: actually, the working utilities

    • libs: shared service libraries
      • check.env: perform various system environment checks
      • check.link: check network connection status
      • format: independent text formatting methods
      • json: working with JSON format
      • styles: different visual styles for prettifying terminal stdout
    • breakx: toolset for resources analyzing
    • reporters: send information via specific gateway
    • spies: special atomic tools to detect something
    • backup: backup + encrypt -> safe place = relief ☺️

Setup

# execute
for tool in tools/*; do chmod u+x $tool; done
# run the following command to install dependencies for Python scripts
pip install -r requirements.txt

That's it. Now modify and use (or use unmodified) these tools as day-by-day helpers. Also, I hope, there will be convenient installer soon. 🐢

There is also one important thing. Oftentimes in automation you're dealing with services/APIs which may have access tokens, common configuration data (URLs, ports etc.) or other reusable stuff. Entering it each time you run a script is tedious, so you can put them into the set of environment variables (e.g. export VARIABLE=value) or use them inside the particular script. Each one that requires user-specific data has a list of suggested variables described in the topmost comment of this script. Now you and only you decide where and how do you prefer to initialize them.

Sometimes you want to run task regularly to do some repetitive work (reporting, backups, monitoring etc.). This can be easily achieved with cron. In short:

# if "cron" is not installed; use "yum" or another appropriate package manager for your GNU/Linux distro
sudo apt update
sudo apt install cron -y
sudo systemctl enable cron

# put "0 10 * * 1-5 report.sh" to send reports at 10 a.m. on every day-of-week from Monday through Friday
crontab -e

To speed up the search for the right tool, you can press F3/Ctrl+F in your viewer when you're on this page and type the most relevant keyword. I hope that something will be found.

ram | ram | report | backup | git | git | toggl | api | telegram-bot | workflow | github | github-api | web-security | brute-force | sms | scale | resize | ImageMagick | find | MAC | scan | bash-version | environment | feh | ffmpeg | react | scan | network-scan | productivity | AWS Elastic Beanstalk | Okta API

Short Cheatsheet Awesome

Contributing

Pull requests with your own shell helpers and toolchains are highly welcome.