No description
- Shell 100%
| bin | ||
| config | ||
| lib | ||
| install.sh | ||
| README.md | ||
git clone https://git.forge.st/ops/ops-scripts.git /opt/ops-scripts
cd /opt/ops-scripts
sudo ./install.sh
Add crontab:
touch /var/log/disk-alert.sh
touch /var/log/clean-expired-files.log
crontab -e
0 16 * * * DRY_RUN=0 NTFY_URL=https://ntfy.1bps.io NTFY_TOPIC=1bps_server_nodes NTFY_TOKEN=<NTFY_TOKEN> /usr/local/sbin/clean-expired-files.sh --dir /root/backup/databases --filter "*.sql.tar.gz" --days 180 >> /var/log/clean-expired-files.log 2>&1
*/10 * * * * NTFY_URL=https://ntfy.1bps.io NTFY_TOPIC=1bps_server_nodes NTFY_TOKEN=<NTFY_TOKEN> /usr/local/sbin/disk-alert.sh --mounts / --thresholds 60,80,90,99 >> /var/log/disk-alert.log 2>&1
Or with env:
*/10 * * * * . /etc/ops/disk-alert.env; /usr/local/sbin/disk-alert.sh >> /var/log/disk-alert.log 2>&1
Logs
logrotate
sudo vi /etc/logrotate.d/disk-alert
/var/log/disk-alert.log {
daily # 每天滚动
rotate 7 # 保留7天
compress # gzip 压缩
delaycompress # 延迟压缩(避免正在写的文件问题)
missingok # 文件不存在不报错
notifempty # 空文件不滚动
copytruncate # 关键:不中断写入
}
Test
sudo logrotate -f /etc/logrotate.d/disk-alert
logger + syslog
Cron
*/10 * * * * /usr/local/sbin/disk-alert.sh 2>&1 | logger -t disk-alert
Syslog
sudo vi /etc/rsyslog.d/disk-alert.conf
if $programname == 'disk-alert' then /var/log/disk-alert.log
& stop
sudo systemctl restart rsyslog
Update
cd /opt/ops-scripts
git pull
sudo ./install.sh