syncing servers
This commit is contained in:
44
servers/hephaestus/ark/usr/local/bin/backup.sh
Executable file
44
servers/hephaestus/ark/usr/local/bin/backup.sh
Executable file
@@ -0,0 +1,44 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Set variables
|
||||
backup=$(date +%Y%m%d%H%M)
|
||||
RETENTION_DAYS=5
|
||||
|
||||
log_message() {
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
|
||||
}
|
||||
|
||||
log_message "Starting backup process..."
|
||||
|
||||
# Stop Docker
|
||||
log_message "Stopping Docker services..."
|
||||
cd /home/oc/dao/docker
|
||||
docker compose down
|
||||
|
||||
## Baikal backup
|
||||
log_message "Backing up Baikal database..."
|
||||
cd /home/oc/dao/docker/data/baikal/Specific/db
|
||||
[[ -f ./db.sqlite ]] && echo .dump | sqlite3 db.sqlite | gzip > "dumps/${backup}_baikal.sql.gz" && log_message "Baikal dumped"
|
||||
|
||||
# tar docker folder
|
||||
log_message "Creating Docker tarball..."
|
||||
cd /home/oc/dao
|
||||
tar -cf "/tmp/${backup}_docker.tar.gz" docker/
|
||||
|
||||
# rclone upload
|
||||
log_message "Uploading to remote storage..."
|
||||
cd /tmp
|
||||
rclone copy "${backup}_docker.tar.gz" vault:/system/backups/docker/
|
||||
rm -f ${backup}_docker.tar.gz
|
||||
|
||||
# Clean up old backups (keep last 5 days)
|
||||
log_message "Cleaning up old backups..."
|
||||
rclone delete vault:/system/backups/docker/ --min-age ${RETENTION_DAYS}d
|
||||
|
||||
# Start Docker
|
||||
log_message "Starting Docker services..."
|
||||
cd /home/oc/dao/docker
|
||||
docker compose up -d
|
||||
|
||||
log_message "Backup process completed."
|
||||
|
||||
62
servers/hephaestus/ark/usr/local/bin/cleanup.sh
Executable file
62
servers/hephaestus/ark/usr/local/bin/cleanup.sh
Executable file
@@ -0,0 +1,62 @@
|
||||
#!/bin/bash
|
||||
|
||||
# System Cleanup Script
|
||||
# Run this script via cron to maintain system cleanliness
|
||||
|
||||
# Set variables
|
||||
LOG_FILE="/var/log/system-cleanup.log"
|
||||
DATE=$(date '+%Y-%m-%d %H:%M:%S')
|
||||
|
||||
# Function to log messages to both console and file
|
||||
log_message() {
|
||||
echo "[$DATE] $1" | tee -a "$LOG_FILE"
|
||||
}
|
||||
|
||||
log_message "Starting system cleanup..."
|
||||
|
||||
# Docker System Cleanup
|
||||
log_message "Cleaning up Docker system..."
|
||||
docker system prune -a -f --volumes | while read -r line; do
|
||||
log_message "Docker: $line"
|
||||
done
|
||||
|
||||
# Clean up old Docker images not used in last 30 days
|
||||
log_message "Removing unused Docker images older than 30 days..."
|
||||
docker image prune -a -f --filter "until=720h" | while read -r line; do
|
||||
log_message "Docker images: $line"
|
||||
done
|
||||
|
||||
# System Package Cleanup
|
||||
log_message "Cleaning up apt packages..."
|
||||
apt-get autoremove -y | while read -r line; do
|
||||
log_message "APT autoremove: $line"
|
||||
done
|
||||
|
||||
apt-get autoclean -y | while read -r line; do
|
||||
log_message "APT autoclean: $line"
|
||||
done
|
||||
|
||||
# Clean up old logs (keep last 7 days)
|
||||
log_message "Cleaning up old system logs..."
|
||||
find /var/log -name "*.log" -type f -mtime +7 -delete 2>/dev/null
|
||||
find /var/log -name "*.log.*" -type f -mtime +7 -delete 2>/dev/null
|
||||
|
||||
# Clean up journal logs (keep last 7 days)
|
||||
log_message "Cleaning up journal logs..."
|
||||
journalctl --vacuum-time=7d | while read -r line; do
|
||||
log_message "Journal cleanup: $line"
|
||||
done
|
||||
|
||||
# Clean up temporary files
|
||||
log_message "Cleaning up temporary files..."
|
||||
find /tmp -type f -atime +7 -delete 2>/dev/null
|
||||
find /var/tmp -type f -atime +7 -delete 2>/dev/null
|
||||
|
||||
# Show disk usage after cleanup
|
||||
log_message "Disk usage after cleanup:"
|
||||
df -h | while read -r line; do
|
||||
log_message "Disk: $line"
|
||||
done
|
||||
|
||||
log_message "System cleanup completed."
|
||||
|
||||
Reference in New Issue
Block a user