commit 54ab377e9442c6f29ee2990676da0101470dbf0c Author: Awin Huang Date: Sat Mar 9 20:30:09 2024 +0800 Init diff --git a/backup_docker_gitea.sh b/backup_docker_gitea.sh new file mode 100755 index 0000000..679914e --- /dev/null +++ b/backup_docker_gitea.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +WORK_DIR="/home/awin/docker/gitea" +SAVE_PATH="/media/upload" +NOW_DATETIME="$(date +'%Y%m%d_%H%M%S')" +BACKUP_FILE_PATH="$SAVE_PATH/docker_backup/gitea/backup_docker_gitea_$NOW_DATETIME.tar" +BACKUP_CMD="sudo tar -cvf $BACKUP_FILE_PATH data docker-compose.yml" + +echo "$BACKUP_FILE_PATH" +echo "$(date +'%F %R:%S'): Backup start. CMD = $BACKUP_CMD" > /home/awin/log/backup_docker_gitea.log + +mkdir -p $SAVE_PATH/docker_backup/gitea +sudo docker compose -f $WORK_DIR/docker-compose.yml down +cd $WORK_DIR +$BACKUP_CMD +sudo docker compose -f $WORK_DIR/docker-compose.yml up -d + +echo "$(date +'%F %R:%S'): Backup finished." >> /home/awin/log/backup_docker_gitea.log + diff --git a/backup_pi.sh b/backup_pi.sh new file mode 100755 index 0000000..94c8c58 --- /dev/null +++ b/backup_pi.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +NOW_DATETIME="$(date +'%Y%m%d_%H%M%S')" +SAVE_FOLDER="/media/upload/pi_backup" +SAVE_FILENAME="pi4_$NOW_DATETIME.img" +CMD="sudo /home/awin/bin/image-utils/image-backup -i $SAVE_FOLDER/$SAVE_FILENAME" +LOG_FILE="/home/awin/log/backup_pi4.log" + +mkdir -p $SAVE_FOLDER + +echo "$(date +'%F %R:%S'): Backup start. CMD = $CMD" > $LOG_FILE +$CMD +echo "$(date +'%F %R:%S'): Backup finished." >> $LOG_FILE diff --git a/ddns.sh b/ddns.sh new file mode 100755 index 0000000..351dbad --- /dev/null +++ b/ddns.sh @@ -0,0 +1,43 @@ +#!/bin/bash +CF_ACCESS_TOKEN=033xQP4_ZpTq3sSkeftz5J6BWw_R9eoDNTba7zfH +CF_ZONE_ID=1d6a623d1780c31544fc86f718dac16e +URLS=('awin.one' + 'blog.awin.one' + 'ftp.awin.one' + 'git.awin.one' + 'storj.awin.one' + 'rss.awin.one' + 'nc.awin.one' + 'collabora.awin.one' + 'storjks.awin.one') +CF_RECORD_IDS=('d67b2a1b3d7cd520b8e8dad2cb522460' + '69dcc0bd619b1a3d4a71458faff2aa50' + 'bd397d9779d42c0b92c9c9c47b765769' + '4eccb48e85f2daa8fefeb92c8cb4b4ee' + '216d631bc860c6a11b62e3a1003f3e3e' + '62981cfec8bf370696c62ca979667ff6' + '2c0b1330487af1262b090a8731a0e0b2' + 'bde4e54eb87b2d543541dea2c008f0da' + '1d6a623d1780c31544fc86f718dac16e') + +INTERNET_IP=`curl -s http://ipv4.icanhazip.com` +INTERFACE_IP=`ip address show wlan0 | grep wlan0 | grep global | awk '{print$2}'` +DNS_RECORD_IP=`dig +short "${URLS[0]}" | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | awk 'NR==1{print}'` +NOW_TIME=`date` + +if [ "$INTERNET_IP" != "$DNS_RECORD_IP" ] +then + echo "Renew IP: ${DNS_RECORD_IP} to ${INTERNET_IP}" + echo "${NOW_TIME}: Renew IP: ${DNS_RECORD_IP} to ${INTERNET_IP}" > /home/awin/log/ddns.log + for ((i = 0; i < ${#URLS[@]}; i++)); do + echo "Update ${URLS[$i]}, ${CF_RECORD_IDS[$i]}" >> /home/awin/log/ddns.log + curl -X PUT "https://api.cloudflare.com/client/v4/zones/${CF_ZONE_ID}/dns_records/${CF_RECORD_IDS[$i]}" \ + -H "Authorization: Bearer ${CF_ACCESS_TOKEN}" \ + -H "Content-Type: application/json" \ + --data '{"type":"A","name":"'${URLS[$i]}'","content":"'${INTERNET_IP}'","ttl":120,"proxied":false}' + done +else + echo "No change: ${INTERNET_IP}" + echo "${NOW_TIME}: No change: ${INTERNET_IP}" > /home/awin/log/ddns.log +fi + diff --git a/nextcloud_clean.sh b/nextcloud_clean.sh new file mode 100755 index 0000000..e269e00 --- /dev/null +++ b/nextcloud_clean.sh @@ -0,0 +1,6 @@ +#! /bin/bash +LOG_FILE="/home/awin/log/nextcloud_clean.log" + +sudo docker exec --user www-data nextcloud-nextcloud-1 php /var/www/html/cron.php +echo "$(date +'%F %R:%S'): Nexcloud clean finished." > $LOG_FILE +