fix .gitignore dir negation so config/ and scripts/ are tracked

This commit is contained in:
infra-bot
2026-08-27 16:14:23 +03:00
parent e14bfc676f
commit 34ff3a2693
19 changed files with 460 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
#!/usr/bin/env bash
# Nightly backup: mysqldump (gz) + code tarball (upload excluded).
# Retention: KEEP_DAYS. Restore notes in README.
set -euo pipefail
KEEP_DAYS=14
DB_NAME="${DB_NAME:-sitemanager}"
BACKUP_DIR="${BACKUP_DIR:-/var/backups/bitrix}"
SITE_DIR="${SITE_DIR:-/home/bitrix/www}"
TS="$(date +%F_%H%M)"
mkdir -p "$BACKUP_DIR/db" "$BACKUP_DIR/code"
echo "[$(date -Is)] dumping database $DB_NAME"
mysqldump --single-transaction --quick --routines --triggers --events \
--databases "$DB_NAME" \
| gzip -6 > "$BACKUP_DIR/db/${TS}_${DB_NAME}.sql.gz"
echo "[$(date -Is)] archiving code tree (without upload/caches)"
tar czf "$BACKUP_DIR/code/${TS}_site.tar.gz" \
-C "$(dirname "$SITE_DIR")" \
--exclude='www/upload' \
--exclude='www/bitrix/cache' \
--exclude='www/bitrix/managed_cache' \
--exclude='www/bitrix/stack_cache' \
--exclude='www/bitrix/tmp' \
--exclude='www/local/php_interface/include/.backup*' \
"$(basename "$SITE_DIR")"
echo "[$(date -Is)] pruning older than $KEEP_DAYS days"
find "$BACKUP_DIR/db" -name '*.sql.gz' -mtime +"$KEEP_DAYS" -delete
find "$BACKUP_DIR/code" -name '*.tar.gz' -mtime +$((KEEP_DAYS * 3)) -delete
echo "[$(date -Is)] done: $(du -sh "$BACKUP_DIR" | cut -f1) total"
+29
View File
@@ -0,0 +1,29 @@
#!/usr/bin/env bash
# Fix ownership/permissions for the Bitrix webroot after deploy or update.
set -euo pipefail
SITE_DIR="${1:-/home/bitrix/www}"
WEB_USER="bitrix"
[[ -d "$SITE_DIR" ]] || { echo "no $SITE_DIR"; exit 1; }
echo "==> chown -R $WEB_USER:$WEB_USER on writable trees"
for d in upload local bitrix/cache bitrix/managed_cache bitrix/stack_cache \
bitrix/tmp bitrix/backup bitrix/updates .; do
[[ -e "$SITE_DIR/$d" ]] && chown -R "$WEB_USER:$WEB_USER" "$SITE_DIR/$d"
done
echo "==> chmod core skeleton"
find "$SITE_DIR" -type d \( -path "$SITE_DIR/bitrix/modules" -o -path "$SITE_DIR/bitrix/themes" \
-o -path "$SITE_DIR/upload" \) -prune -exec chmod {} 755 \;
chmod 755 "$SITE_DIR"
echo "==> ensure runtime dirs exist and are writable"
mkdir -p "$SITE_DIR"/upload/{,1c_exchange,import_files} \
"$SITE_DIR"/bitrix/{cache,managed_cache,stack_cache,tmp} \
/tmp/php_sessions/www /tmp/php/upload
chown -R "$WEB_USER:$WEB_USER" "$SITE_DIR"/upload \
"$SITE_DIR"/bitrix/{cache,managed_cache,stack_cache,tmp} \
/tmp/php_sessions/www /tmp/php/upload
chmod -R u=rwX,g=rX,o= "$SITE_DIR"/bitrix/tmp 2>/dev/null || true
echo "==> done. sessions dir is 700/$WEB_USER."