Files
crm.clientright.ru/crm_extensions/deploy_scripts/sync_crm_extensions.sh
Fedor dabcd43a00 Добавлены скрипты для парсинга судебных документов и обновления проектов в CRM
- court_document_parser.py: парсер судебных документов с извлечением ФИО, номера дела, УИД, суда
- court_parser_api.py: API для вызова парсера из n8n
- pdf_court_parser.py: парсер PDF документов с извлечением текста
- simple_project_updater.php: обновление проектов через CRM API
- simple_project_updater_v2.php: обновленная версия с прямыми SQL запросами и S3Client
- update_project_from_document.php: альтернативный скрипт обновления
- test_input.json: тестовые данные для парсера
- README файлы с документацией для всех скриптов

Скрипты поддерживают:
- Поиск проектов по ФИО, номеру дела, УИД, названию суда
- Создание документов в CRM с загрузкой в S3
- Привязку документов к проектам
- Логирование всех операций
- Работу с n8n через SSH команды
2025-09-30 19:54:37 +03:00

168 lines
5.0 KiB
Bash
Executable File

#!/bin/bash
# Скрипт синхронизации только CRM Extensions между тестовой и боевой средой
# Автор: Фёдор
# Дата: 2025-09-26
set -e
# Цвета для вывода
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
# Пути
TEST_DIR="/var/www/fastuser/data/www/crm-test.clientright.ru"
PROD_DIR="/var/www/fastuser/data/www/crm.clientright.ru"
EXTENSIONS_DIR="crm_extensions"
# Функция логирования
log() {
echo -e "${BLUE}[$(date '+%Y-%m-%d %H:%M:%S')]${NC} $1"
}
error() {
echo -e "${RED}[ERROR]${NC} $1"
exit 1
}
success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
# Проверка существования директорий
check_directories() {
log "Проверка директорий..."
if [ ! -d "$TEST_DIR/$EXTENSIONS_DIR" ]; then
error "CRM Extensions не найдены в тестовой среде: $TEST_DIR/$EXTENSIONS_DIR"
fi
if [ ! -d "$PROD_DIR" ]; then
error "Продакшн директория не найдена: $PROD_DIR"
fi
success "Директории проверены"
}
# Создание резервной копии текущих Extensions
backup_current() {
log "Создание резервной копии текущих CRM Extensions..."
if [ -d "$PROD_DIR/$EXTENSIONS_DIR" ]; then
BACKUP_NAME="crm_extensions_backup_$(date +%Y%m%d_%H%M%S).tar.gz"
BACKUP_PATH="/var/www/fastuser/data/backups/$BACKUP_NAME"
mkdir -p "$(dirname "$BACKUP_PATH")"
tar -czf "$BACKUP_PATH" -C "$PROD_DIR" "$EXTENSIONS_DIR"
if [ $? -eq 0 ]; then
success "Резервная копия создана: $BACKUP_PATH"
else
error "Ошибка создания резервной копии"
fi
else
warning "CRM Extensions не найдены в продакшн среде, пропускаем бэкап"
fi
}
# Синхронизация CRM Extensions
sync_extensions() {
log "Синхронизация CRM Extensions..."
# Удаляем старую версию
if [ -d "$PROD_DIR/$EXTENSIONS_DIR" ]; then
rm -rf "$PROD_DIR/$EXTENSIONS_DIR"
log "Удалена старая версия CRM Extensions"
fi
# Копируем новую версию
cp -r "$TEST_DIR/$EXTENSIONS_DIR" "$PROD_DIR/"
if [ $? -eq 0 ]; then
success "CRM Extensions скопированы"
else
error "Ошибка копирования CRM Extensions"
fi
# Устанавливаем правильные права
chown -R fastuser:fastuser "$PROD_DIR/$EXTENSIONS_DIR"
find "$PROD_DIR/$EXTENSIONS_DIR" -type f -exec chmod 644 {} \;
find "$PROD_DIR/$EXTENSIONS_DIR" -type d -exec chmod 755 {} \;
find "$PROD_DIR/$EXTENSIONS_DIR" -name "*.sh" -exec chmod 755 {} \;
success "Права доступа установлены"
}
# Проверка синхронизации
verify_sync() {
log "Проверка синхронизации..."
# Проверяем ключевые файлы
KEY_FILES=(
"crm_extensions/README.md"
"crm_extensions/.env.example"
"crm_extensions/nextcloud_api.php"
)
for file in "${KEY_FILES[@]}"; do
if [ -f "$PROD_DIR/$file" ]; then
success "Файл найден: $file"
else
warning "Файл не найден: $file"
fi
done
# Сравниваем размеры директорий
TEST_SIZE=$(du -s "$TEST_DIR/$EXTENSIONS_DIR" | cut -f1)
PROD_SIZE=$(du -s "$PROD_DIR/$EXTENSIONS_DIR" | cut -f1)
if [ "$TEST_SIZE" = "$PROD_SIZE" ]; then
success "Размеры директорий совпадают: ${TEST_SIZE}KB"
else
warning "Размеры директорий отличаются: тест=${TEST_SIZE}KB, прод=${PROD_SIZE}KB"
fi
}
# Основная функция
main() {
log "Начало синхронизации CRM Extensions"
case "${1:-sync}" in
"sync")
check_directories
backup_current
sync_extensions
verify_sync
success "Синхронизация CRM Extensions завершена!"
;;
"backup")
check_directories
backup_current
;;
"verify")
check_directories
verify_sync
;;
*)
echo "Использование: $0 {sync|backup|verify}"
echo " sync - Синхронизация CRM Extensions (по умолчанию)"
echo " backup - Создание резервной копии"
echo " verify - Проверка синхронизации"
exit 1
;;
esac
}
# Запуск основной функции
main "$@"