Files
play-life/check-repo-fs.sh

76 lines
2.4 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
# Скрипт для проверки файловой системы репозитория Gitea
# Выполните на сервере с административным доступом
REPO_PATH="/poignatov/play-life.git"
GITEA_USER="git" # или пользователь, под которым работает Gitea
echo "=== Проверка существования репозитория ==="
if [ -d "$REPO_PATH" ]; then
echo "✓ Репозиторий существует"
else
echo "✗ Репозиторий НЕ найден: $REPO_PATH"
exit 1
fi
echo ""
echo "=== Проверка прав доступа ==="
ls -ld "$REPO_PATH"
echo ""
echo "=== Проверка владельца ==="
OWNER=$(stat -c '%U:%G' "$REPO_PATH" 2>/dev/null || stat -f '%Su:%Sg' "$REPO_PATH" 2>/dev/null)
echo "Владелец: $OWNER"
echo ""
echo "=== Проверка размера репозитория ==="
du -sh "$REPO_PATH"
echo ""
echo "=== Проверка свободного места ==="
df -h "$REPO_PATH" | tail -1
echo ""
echo "=== Проверка ключевых файлов Git ==="
if [ -f "$REPO_PATH/config" ]; then
echo "✓ config существует"
else
echo "✗ config НЕ найден"
fi
if [ -d "$REPO_PATH/objects" ]; then
echo "✓ objects/ существует"
echo " Количество объектов: $(find "$REPO_PATH/objects" -type f | wc -l)"
else
echo "✗ objects/ НЕ найден"
fi
if [ -f "$REPO_PATH/HEAD" ]; then
echo "✓ HEAD существует"
echo " Текущая ветка: $(cat "$REPO_PATH/HEAD")"
else
echo "✗ HEAD НЕ найден"
fi
if [ -f "$REPO_PATH/refs/heads/main" ]; then
echo "✓ refs/heads/main существует"
echo " Последний коммит: $(cat "$REPO_PATH/refs/heads/main")"
else
echo "✗ refs/heads/main НЕ найден"
fi
echo ""
echo "=== Проверка целостности репозитория ==="
cd "$REPO_PATH"
if git fsck --no-progress 2>&1 | head -20; then
echo "✓ Репозиторий цел"
else
echo "✗ Обнаружены проблемы с целостностью"
fi
echo ""
echo "=== Проверка логов Gitea ==="
echo "Проверьте логи Gitea на наличие ошибок:"
echo " - /var/log/gitea/gitea.log"
echo " - или в директории, указанной в конфиге Gitea"