# Bash Scripts collection
TODO: Need install packages for each script
## Permanent enviroment variables in ~/.profile
Append file `~/.profile` with this variables:
```
# E7 Scripts
# ClamAV scan script
export E7S_CLAM_LOGPATH="/path/to/logs/"
# Multiple folders separate by space
export E7S_CLAM_DIRSTOSCAN="/path/to/target/"
# Global script variables
export E7S_GOTIFY_SERVER_URL="https://push.example.com"
export E7S_LOGS_PRESERVE_DAYS=30
export ES7_LOGS_SERVER_SSH="server.example.com"
export ES7_LOGS_PATH="/path/to/web/root/"
export ES7_LOGS_URL="https://logs.example.com"
```
## Scripts
### utils/gotifypush.sh
Send markdown notifications to gotify channel throught curl
* Usage: `./gotifypush.sh
`
### utils/logger.sh
Save logs into remote server and publish it into web server
* Usage: `./logger.sh `
### scan_chk.sh
Scan rootkits into system with chkrootkit
* Usage: `./scan_chk.sh`
### scan_rkh.sh
Scan rootkits into system with rkhunter
* Usage: `./scan_rkh.sh`
### scan_clam.sh
Scan virus and malware into system with clamav
* Usage: `./scan_clam.sh`
### updates_notifier.sh
TODO!
## Some tips
* https://www.appsloveworld.com/bash/100/6/how-have-both-local-and-remote-variable-inside-an-ssh-command
* https://stackoverflow.com/questions/27932694/shell-script-ssh-server-eof (script detect expire users)
* use xargs: https://www.baeldung.com/linux/xargs-multiple-arguments
* load env vars in cron: https://www.baeldung.com/linux/load-env-variables-in-cron-job
* crontab need path sometimes: https://askubuntu.com/questions/117978/script-doesnt-run-via-crontab-but-works-fine-standalone
* errors and best practices: https://tecadmin.net/resolved-unary-operator-expected-error-in-bash/