Atualizar Instal-Proxy-Sinc.sh
This commit is contained in:
parent
4712964039
commit
cc78cf5ac1
|
|
@ -1,24 +1,25 @@
|
|||
#!/bin/bash
|
||||
|
||||
# ==============================================================================
|
||||
# INSTALADOR DO SERVIÇO PROXY-SINC (VERSÃO PROFISSIONAL)
|
||||
#
|
||||
# Autor: A sua IA Assistente & Equipa de Infraestrutura iT Guys
|
||||
# Descrição: Instala e configura um serviço de versionamento robusto e
|
||||
# auto-documentado para configurações de servidor.
|
||||
# ==============================================================================
|
||||
# ==============================================================================#
|
||||
# INSTALADOR DO SERVIÇO PROXY-SINC #
|
||||
# #
|
||||
# Descrição: Instala e configura um serviço de versionamento robusto e #
|
||||
# auto-documentado para configurações de servidor. #
|
||||
# ==============================================================================#
|
||||
|
||||
set -e
|
||||
|
||||
# --- Variáveis de Configuração ---
|
||||
# Define os caminhos de instalação padrão para os componentes do serviço.
|
||||
REPO_DIR="/opt/config_repo"
|
||||
SCRIPT_INSTALL_DIR="/usr/local/sbin"
|
||||
SYSTEMD_DIR="/etc/systemd/system"
|
||||
MAN_DIR="/usr/share/man/man8"
|
||||
CONFIG_DIR="/etc/proxy-sinc"
|
||||
PATHS_FILE="${CONFIG_DIR}/paths.conf"
|
||||
# A URL para o script de atualização deve apontar para o ficheiro RAW.
|
||||
UPDATE_SCRIPT_URL="https://git.itguys.com.br/joao.goncalves/NgixProxy_Pathfinder/raw/branch/main/Instal-Proxy-Sinc.sh"
|
||||
# URL do repositório onde o script de instalação (este ficheiro) está guardado.
|
||||
# Usado pelo comando de auto-atualização 'proxy-sinc-update'.
|
||||
UPDATE_REPO_URL="https://git.itguys.com.br/joao.goncalves/NgixProxy_Pathfinder/raw/branch/main/Instal-Proxy-Sinc.sh"
|
||||
|
||||
# --- Funções de Ajuda ---
|
||||
info() { echo -e "\e[32m[INFO]\e[0m $1"; }
|
||||
|
|
@ -28,32 +29,44 @@ warn() { echo -e "\e[33m[AVISO]\e[0m $1"; }
|
|||
# --- Início da Execução ---
|
||||
info "Iniciando a instalação/atualização do serviço Proxy-Sinc..."
|
||||
|
||||
# Garante que o script está a ser executado como root.
|
||||
if [ "$EUID" -ne 0 ]; then
|
||||
error "Este script precisa de ser executado como root."
|
||||
fi
|
||||
|
||||
# --- 1. Verificação de Dependências ---
|
||||
info "A verificar as dependências (git, rsync)..."
|
||||
info "A verificar as dependências..."
|
||||
apt-get update > /dev/null
|
||||
# Garante que as ferramentas essenciais (git, rsync) estão instaladas.
|
||||
apt-get install -y git rsync > /dev/null
|
||||
# Verifica se o leitor de man pages está instalado e, se não estiver, instala-o.
|
||||
if ! command -v man &> /dev/null; then
|
||||
warn "O comando 'man' não foi encontrado. A instalar 'man-db'..."
|
||||
apt-get install -y man-db > /dev/null
|
||||
fi
|
||||
info "Dependências satisfeitas."
|
||||
|
||||
# --- 2. Configuração das Credenciais e do Repositório ---
|
||||
info "Configurando a autenticação para o Gitea..."
|
||||
|
||||
# Recolhe as informações necessárias do utilizador.
|
||||
read -p "Por favor, insira a URL HTTP ou HTTPS do seu repositório Gitea: " GIT_URL
|
||||
read -p "Por favor, insira o seu NOME DE UTILIZADOR do Gitea: " GITEA_USERNAME
|
||||
read -s -p "Por favor, insira o seu TOKEN DE ACESSO do Gitea (ficará oculto): " GITEA_TOKEN
|
||||
echo ""
|
||||
# REQUISITO 4: Pede a identificação do colaborador para o registo de deploy.
|
||||
read -p "Identificação do Colaborador para o registo (Login AD/Email): " DEPLOYER_ID
|
||||
|
||||
if [ -z "$GIT_URL" ] || [ -z "$GITEA_USERNAME" ] || [ -z "$GITEA_TOKEN" ]; then
|
||||
error "Todos os campos (URL, Utilizador, Token) são obrigatórios."
|
||||
if [ -z "$GIT_URL" ] || [ -z "$GITEA_USERNAME" ] || [ -z "$GITEA_TOKEN" ] || [ -z "$DEPLOYER_ID" ]; then
|
||||
error "Todos os campos (URL, Utilizador, Token, Colaborador) são obrigatórios."
|
||||
fi
|
||||
|
||||
# Constrói a URL de autenticação para o Git.
|
||||
GIT_PROTOCOL=$(echo "$GIT_URL" | grep -o '^https\?://')
|
||||
GIT_DOMAIN_PATH=$(echo "$GIT_URL" | sed -e 's|https\?://||')
|
||||
AUTH_GIT_URL="${GIT_PROTOCOL}${GITEA_USERNAME}:${GITEA_TOKEN}@${GIT_DOMAIN_PATH}"
|
||||
|
||||
# Gera a identidade para os commits automaticamente com base no hostname.
|
||||
SERVER_HOSTNAME=$(hostname -f)
|
||||
GIT_COMMIT_NAME="$SERVER_HOSTNAME"
|
||||
GIT_COMMIT_EMAIL="${SERVER_HOSTNAME%%.*}@itguys.com.br"
|
||||
|
|
@ -62,6 +75,7 @@ info "O autor dos commits será definido como: $GIT_COMMIT_NAME <$GIT_COMMIT_EMA
|
|||
# --- 3. Teste de Conexão SSL e Configuração do Git ---
|
||||
info "A testar a conexão com o Gitea..."
|
||||
SSL_VERIFY="true"
|
||||
# REQUISITO 2: Testa a conexão com e sem verificação SSL e configura o Git de acordo.
|
||||
if ! git -c http.sslVerify=true ls-remote "$GIT_URL" &> /dev/null; then
|
||||
warn "A conexão com verificação SSL falhou. A tentar novamente sem verificação..."
|
||||
if ! git -c http.sslVerify=false ls-remote "$GIT_URL" &> /dev/null; then
|
||||
|
|
@ -93,28 +107,37 @@ git config user.email "$GIT_COMMIT_EMAIL"
|
|||
git config http.sslVerify "$SSL_VERIFY"
|
||||
info "Repositório configurado com sucesso."
|
||||
|
||||
# --- 5. Gerar Ficheiro de Deploy (se for a primeira vez) ---
|
||||
# --- 5. Gerar Ficheiro de Deploy (com identificação do colaborador) ---
|
||||
DEPLOY_LOG_DIR="$REPO_DIR/_deployment_logs"
|
||||
DEPLOY_LOG_FILE="${DEPLOY_LOG_DIR}/${SERVER_HOSTNAME}.md"
|
||||
if [ ! -f "$DEPLOY_LOG_FILE" ]; then
|
||||
info "A criar o registo de deploy inicial..."
|
||||
mkdir -p "$DEPLOY_LOG_DIR"
|
||||
echo "# Registo de Deploy do Proxy-Sinc" > "$DEPLOY_LOG_FILE"
|
||||
echo "" >> "$DEPLOY_LOG_FILE"
|
||||
echo "**Servidor:** ${SERVER_HOSTNAME}" >> "$DEPLOY_LOG_FILE"
|
||||
echo "**Instalado por:** ${GITEA_USERNAME}" >> "$DEPLOY_LOG_FILE"
|
||||
echo "**Data de Instalação:** $(date)" >> "$DEPLOY_LOG_FILE"
|
||||
|
||||
git add "$DEPLOY_LOG_FILE"
|
||||
git commit -m "[Deploy] Instalação inicial do serviço de sincronização em ${SERVER_HOSTNAME}"
|
||||
git push origin main
|
||||
info "Registo de deploy enviado para o Gitea."
|
||||
# REQUISITO 4: Identifica se é uma instalação ou uma atualização.
|
||||
ACTION_TYPE="Instalação Manual"
|
||||
if [ -f "$SYSTEMD_DIR/proxy-sinc.service" ]; then
|
||||
ACTION_TYPE="Atualização Manual"
|
||||
fi
|
||||
|
||||
# --- 6. Gerar os Ficheiros do Serviço no Diretório Atual ---
|
||||
info "A gerar os ficheiros do serviço..."
|
||||
info "A criar/atualizar o registo de deploy..."
|
||||
mkdir -p "$DEPLOY_LOG_DIR"
|
||||
# Cria o ficheiro se ele não existir.
|
||||
if [ ! -f "$DEPLOY_LOG_FILE" ]; then
|
||||
echo "# Registo de Deploy do Proxy-Sinc para ${SERVER_HOSTNAME}" > "$DEPLOY_LOG_FILE"
|
||||
fi
|
||||
# Adiciona a nova entrada de log.
|
||||
echo "" >> "$DEPLOY_LOG_FILE"
|
||||
echo "---" >> "$DEPLOY_LOG_FILE"
|
||||
echo "**Tipo de Ação:** ${ACTION_TYPE}" >> "$DEPLOY_LOG_FILE"
|
||||
echo "**Executado por:** ${DEPLOYER_ID}" >> "$DEPLOY_LOG_FILE"
|
||||
echo "**Data:** $(date)" >> "$DEPLOY_LOG_FILE"
|
||||
|
||||
# Cria o diretório de configuração e o ficheiro de caminhos
|
||||
git add "$DEPLOY_LOG_FILE"
|
||||
git commit -m "[Deploy] ${ACTION_TYPE} do serviço por ${DEPLOYER_ID} em ${SERVER_HOSTNAME}"
|
||||
git push origin main
|
||||
info "Registo de deploy enviado para o Gitea."
|
||||
|
||||
# --- 6. Instalar os Ficheiros do Serviço ---
|
||||
info "A instalar/atualizar os ficheiros do serviço..."
|
||||
|
||||
# REQUISITO 1: Cria o diretório de configuração e o ficheiro de caminhos.
|
||||
mkdir -p "$CONFIG_DIR"
|
||||
if [ ! -f "$PATHS_FILE" ]; then
|
||||
info "A criar o ficheiro de caminhos padrão em $PATHS_FILE"
|
||||
|
|
@ -124,56 +147,71 @@ if [ ! -f "$PATHS_FILE" ]; then
|
|||
echo "/etc/fail2ban" >> "$PATHS_FILE"
|
||||
fi
|
||||
|
||||
# Gera o script principal de commit
|
||||
cat > ./commit_configs.sh << 'EOF'
|
||||
# REQUISITO 2 e 5: Gera o script principal de commit, agora mais comentado.
|
||||
cat > "$SCRIPT_INSTALL_DIR/commit_configs.sh" << 'EOF'
|
||||
#!/bin/bash
|
||||
# Este script é executado pelo systemd.timer para sincronizar as configurações.
|
||||
set -e
|
||||
|
||||
# --- Variáveis ---
|
||||
# Diretório local do repositório Git.
|
||||
REPO_PATH="/opt/config_repo"
|
||||
# Diretório de configuração do próprio serviço de sincronização.
|
||||
CONFIG_DIR="/etc/proxy-sinc"
|
||||
# Ficheiro que contém a lista de ficheiros/pastas a serem versionados.
|
||||
PATHS_FILE="${CONFIG_DIR}/paths.conf"
|
||||
AUTOMATION_FILES_SOURCE=("/usr/local/sbin/commit_configs.sh" "/usr/local/sbin/proxy-sinc-update" "/etc/systemd/system/proxy-sinc.service" "/etc/systemd/system/proxy-sinc.timer" "/usr/share/man/man8/proxy-sinc.8.gz" "${PATHS_FILE}")
|
||||
# Lista dos ficheiros da própria automação, para serem auto-versionados.
|
||||
AUTOMATION_FILES_SOURCE=("/usr/local/sbin/commit_configs.sh" "/usr/local/sbin/proxy-sinc-update" "/etc/systemd/system/proxy-sinc.service" "/etc/systemd/system/proxy-sinc.timer" "/etc/systemd/system/proxy-sinc-update.service" "/etc/systemd/system/proxy-sinc-update.timer" "/usr/share/man/man8/proxy-sinc.8.gz" "${PATHS_FILE}")
|
||||
# Destino dos ficheiros de automação dentro do repositório Git.
|
||||
AUTOMATION_FILES_DEST="$REPO_PATH/_automation_scripts/"
|
||||
|
||||
log_info() { echo "[INFO] $1"; }
|
||||
log_warn() { echo "[AVISO] $1"; }
|
||||
|
||||
log_info "--- Iniciando a verificação de sincronização [$(date)] ---"
|
||||
# Verifica se o script está a ser executado como root.
|
||||
if [ "$EUID" -ne 0 ]; then echo "[ERRO] O script deve ser executado como root." >&2; exit 1; fi
|
||||
if [ ! -d "$REPO_PATH/.git" ]; then echo "[ERRO] O diretório do repositório $REPO_PATH não é um repositório Git válido." >&2; exit 1; fi
|
||||
# Verifica se o repositório foi clonado corretamente.
|
||||
if [ ! -d "$REPO_PATH/.git" ]; then echo "[ERRO] O diretório $REPO_PATH não é um repositório Git válido." >&2; exit 1; fi
|
||||
|
||||
# --- Sincronização dos Ficheiros de Configuração ---
|
||||
log_info "Sincronizando ficheiros de configuração definidos em $PATHS_FILE..."
|
||||
if [ ! -f "$PATHS_FILE" ]; then
|
||||
echo "[AVISO] O ficheiro de caminhos $PATHS_FILE não foi encontrado. Nenhum ficheiro de configuração foi sincronizado."
|
||||
log_warn "O ficheiro de caminhos $PATHS_FILE não foi encontrado. Nenhum ficheiro de configuração foi sincronizado."
|
||||
else
|
||||
# Lê cada linha do ficheiro paths.conf.
|
||||
while IFS= read -r path_to_sync || [ -n "$path_to_sync" ]; do
|
||||
# Ignora linhas vazias e comentários.
|
||||
if [ -z "$path_to_sync" ] || [[ "$path_to_sync" =~ ^# ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ -e "$path_to_sync" ]; then
|
||||
# Copia para a raiz do repositório
|
||||
log_info "A sincronizar '$path_to_sync'..."
|
||||
# O rsync é eficiente e só copia ficheiros alterados.
|
||||
rsync -avz --delete --exclude='*.swp' --exclude='*.bak' --exclude='sites-enabled/' --exclude='modules-enabled/' --exclude='/var/log/' --exclude='/var/run/' --exclude='/var/cache/' "$path_to_sync" "$REPO_PATH/"
|
||||
else
|
||||
echo "[AVISO] O caminho '$path_to_sync' definido em $PATHS_FILE não existe. A ignorar."
|
||||
log_warn "O caminho '$path_to_sync' definido em $PATHS_FILE não existe. A ignorar."
|
||||
fi
|
||||
done < "$PATHS_FILE"
|
||||
fi
|
||||
|
||||
# --- Sincronização dos Ficheiros de Automação (Auto-Versionamento) ---
|
||||
log_info "Sincronizando ficheiros de automação..."
|
||||
mkdir -p "$AUTOMATION_FILES_DEST"
|
||||
for file in "${AUTOMATION_FILES_SOURCE[@]}"; do
|
||||
if [ -f "$file" ]; then
|
||||
# O -R preserva a estrutura de pastas (ex: /etc/proxy-sinc/paths.conf).
|
||||
rsync -aR "$file" "$AUTOMATION_FILES_DEST"
|
||||
fi
|
||||
done
|
||||
|
||||
cd "$REPO_PATH"
|
||||
log_info "A verificar o status do repositório Git..."
|
||||
# Se existirem alterações, faz o commit e o push.
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
log_info "Alterações detetadas. A preparar o commit."
|
||||
log_info "A puxar alterações do repositório remoto para evitar conflitos..."
|
||||
git pull --ff-only
|
||||
log_info "A adicionar alterações ao stage..."
|
||||
git pull --ff-only # Sincroniza com o remoto para evitar conflitos.
|
||||
git add .
|
||||
COMMIT_MESSAGE="[Auto-Sync] Atualização das configurações em $(hostname -f) - $(date +'%Y-%m-%d %H:%M:%S')"
|
||||
log_info "A fazer o commit com a mensagem: $COMMIT_MESSAGE"
|
||||
|
|
@ -189,8 +227,9 @@ exit 0
|
|||
EOF
|
||||
|
||||
# Gera o script de atualização
|
||||
cat > ./proxy-sinc-update << EOF
|
||||
cat > "$SCRIPT_INSTALL_DIR/proxy-sinc-update" << EOF
|
||||
#!/bin/bash
|
||||
# Este script permite a atualização manual do serviço.
|
||||
set -e
|
||||
echo "A procurar por atualizações para o serviço Proxy-Sinc..."
|
||||
UPDATE_SCRIPT_URL="${UPDATE_SCRIPT_URL}"
|
||||
|
|
@ -198,14 +237,14 @@ TEMP_SCRIPT="/tmp/setup_latest.sh"
|
|||
|
||||
echo "A baixar a versão mais recente do instalador de: \$UPDATE_SCRIPT_URL"
|
||||
|
||||
# Usa o modo inseguro para o download se o repositório estiver configurado assim.
|
||||
SSL_VERIFY_FLAG=""
|
||||
if [ -d "/opt/config_repo/.git" ]; then
|
||||
if [ "\$(cd /opt/config_repo && git config --get http.sslVerify)" == "false" ]; then
|
||||
if [ -d "/opt/config_repo/.git" ] && [ "\$(cd /opt/config_repo && git config --get http.sslVerify)" == "false" ]; then
|
||||
SSL_VERIFY_FLAG="--insecure"
|
||||
echo "[AVISO] A usar o modo inseguro para baixar a atualização devido à configuração do repositório."
|
||||
fi
|
||||
echo "[AVISO] A usar o modo inseguro para baixar a atualização."
|
||||
fi
|
||||
|
||||
# Baixa e executa a versão mais recente do instalador.
|
||||
if curl \$SSL_VERIFY_FLAG -L "\$UPDATE_SCRIPT_URL" -o "\$TEMP_SCRIPT"; then
|
||||
chmod +x "\$TEMP_SCRIPT"
|
||||
echo "Instalador baixado com sucesso. A executar a atualização..."
|
||||
|
|
@ -219,17 +258,16 @@ fi
|
|||
exit 0
|
||||
EOF
|
||||
|
||||
# Gera os ficheiros de serviço do systemd
|
||||
cat > ./proxy-sinc.service << 'EOF'
|
||||
# Gera os ficheiros de serviço do systemd para a SINCRONIZAÇÃO A CADA MINUTO
|
||||
cat > "$SYSTEMD_DIR/proxy-sinc.service" << 'EOF'
|
||||
[Unit]
|
||||
Description=Serviço de Sincronização de Configurações do Nginx para o Git
|
||||
After=network.target
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/local/sbin/commit_configs.sh
|
||||
EOF
|
||||
|
||||
cat > ./proxy-sinc.timer << 'EOF'
|
||||
cat > "$SYSTEMD_DIR/proxy-sinc.timer" << 'EOF'
|
||||
[Unit]
|
||||
Description=Executa o serviço de sincronização de configurações a cada minuto
|
||||
[Timer]
|
||||
|
|
@ -240,8 +278,30 @@ Unit=proxy-sinc.service
|
|||
WantedBy=timers.target
|
||||
EOF
|
||||
|
||||
# Gera a nova man page
|
||||
cat > ./proxy-sinc.8 << 'EOF'
|
||||
# REQUISITO 3: Gera os ficheiros de serviço para a VERIFICAÇÃO DE ATUALIZAÇÕES SEMANAL
|
||||
cat > "$SYSTEMD_DIR/proxy-sinc-update.service" << 'EOF'
|
||||
[Unit]
|
||||
Description=Serviço de Verificação Semanal de Atualizações para o Proxy-Sinc
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/local/sbin/proxy-sinc-update
|
||||
EOF
|
||||
|
||||
cat > "$SYSTEMD_DIR/proxy-sinc-update.timer" << 'EOF'
|
||||
[Unit]
|
||||
Description=Executa a verificação de atualizações do Proxy-Sinc toda Segunda-feira
|
||||
[Timer]
|
||||
# OnCalendar=dayofweek hour:minute:second
|
||||
# Executa toda Segunda-feira às 03:00 da manhã.
|
||||
OnCalendar=Mon *-*-* 03:00:00
|
||||
RandomizedDelaySec=1h
|
||||
Unit=proxy-sinc-update.service
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
EOF
|
||||
|
||||
# REQUISITO 5: Gera a nova man page, mais completa
|
||||
cat > "/tmp/proxy-sinc.8" << 'EOF'
|
||||
.TH PROXY-SINC 8 "Setembro 2025" "iT Guys - Equipa de Infraestrutura" "Ferramentas de Sistema"
|
||||
.SH NAME
|
||||
proxy-sinc \- Serviço de versionamento automático de configurações de servidor
|
||||
|
|
@ -272,24 +332,27 @@ Exemplo de conteúdo para \fI/etc/proxy-sinc/paths.conf\fR:
|
|||
/etc/zabbix/zabbix_agentd.d/meu_parametro.conf
|
||||
.fi
|
||||
.SH ATUALIZAÇÃO
|
||||
Para atualizar o serviço e os seus scripts para a versão mais recente, execute o seguinte comando como root:
|
||||
.SS ATUALIZAÇÃO MANUAL
|
||||
Para forçar uma atualização do serviço e dos seus scripts para a versão mais recente, execute o seguinte comando como root:
|
||||
.sp
|
||||
\fBproxy-sinc-update\fR
|
||||
.sp
|
||||
Este comando irá baixar e executar a versão mais recente do script de instalação a partir do repositório Git oficial, atualizando todos os componentes necessários.
|
||||
Este comando irá baixar e executar a versão mais recente do script de instalação a partir do repositório Git oficial. Ele irá pedir as suas credenciais novamente para reconfigurar a autenticação e irá registar a atualização no log de deploy do repositório.
|
||||
.SS ATUALIZAÇÃO AUTOMÁTICA
|
||||
O sistema inclui um timer do systemd (\fIproxy-sinc-update.timer\fR) que executa o comando \fBproxy-sinc-update\fR automaticamente uma vez por semana (toda Segunda-feira às 3 da manhã) para garantir que a ferramenta de automação se mantém atualizada.
|
||||
.SH FICHEIROS
|
||||
.TP
|
||||
\fB/usr/local/sbin/commit_configs.sh\fR
|
||||
O script principal que executa a lógica de sincronização e commit.
|
||||
O script principal que executa a lógica de sincronização a cada minuto.
|
||||
.TP
|
||||
\fB/usr/local/sbin/proxy-sinc-update\fR
|
||||
O script que gere a auto-atualização do serviço.
|
||||
.TP
|
||||
\fB/etc/systemd/system/proxy-sinc.service\fR
|
||||
O ficheiro de unidade do systemd que define como executar o script.
|
||||
.TP
|
||||
\fB/etc/systemd/system/proxy-sinc.timer\fR
|
||||
O ficheiro de timer do systemd que define a frequência de execução.
|
||||
O timer que define a frequência da SINCRONIZAÇÃO (a cada minuto).
|
||||
.TP
|
||||
\fB/etc/systemd/system/proxy-sinc-update.timer\fR
|
||||
O timer que define a frequência da VERIFICAÇÃO DE ATUALIZAÇÕES (semanal).
|
||||
.TP
|
||||
\fB/opt/config_repo\fR
|
||||
O diretório local onde o repositório Git é clonado.
|
||||
|
|
@ -302,27 +365,28 @@ EOF
|
|||
|
||||
# --- 7. Mover ficheiros para os locais corretos e instalar ---
|
||||
info "A mover os ficheiros para os seus destinos..."
|
||||
# Garante que os diretórios de destino existem
|
||||
mkdir -p "$SCRIPT_INSTALL_DIR" "$SYSTEMD_DIR" "$MAN_DIR"
|
||||
|
||||
# Move os ficheiros gerados
|
||||
mv ./commit_configs.sh "$SCRIPT_INSTALL_DIR/"
|
||||
mv ./proxy-sinc-update "$SCRIPT_INSTALL_DIR/"
|
||||
mv ./proxy-sinc.service "$SYSTEMD_DIR/"
|
||||
mv ./proxy-sinc.timer "$SYSTEMD_DIR/"
|
||||
mv ./proxy-sinc.8 "$MAN_DIR/"
|
||||
mv ./proxy-sinc-update.service "$SYSTEMD_DIR/"
|
||||
mv ./proxy-sinc-update.timer "$SYSTEMD_DIR/"
|
||||
mv "/tmp/proxy-sinc.8" "$MAN_DIR/"
|
||||
|
||||
# Define as permissões corretas
|
||||
chmod +x "$SCRIPT_INSTALL_DIR/commit_configs.sh"
|
||||
chmod +x "$SCRIPT_INSTALL_DIR/proxy-sinc-update"
|
||||
gzip -f "$MAN_DIR/proxy-sinc.8"
|
||||
info "Ficheiros instalados com sucesso."
|
||||
|
||||
# --- 8. Ativar o Serviço ---
|
||||
info "A recarregar o systemd e a ativar o timer..."
|
||||
# --- 8. Ativar os Serviços ---
|
||||
info "A recarregar o systemd e a ativar os timers..."
|
||||
systemctl daemon-reload
|
||||
# Ativa e inicia os dois timers
|
||||
systemctl enable --now proxy-sinc.timer
|
||||
info "Serviço ativado e a correr!"
|
||||
systemctl enable --now proxy-sinc-update.timer
|
||||
info "Serviços ativados e a correr!"
|
||||
|
||||
# --- Conclusão ---
|
||||
echo ""
|
||||
|
|
@ -333,12 +397,13 @@ info "O serviço 'proxy-sinc' está agora ativo e irá sincronizar as suas"
|
|||
info "configurações para o Gitea a cada minuto."
|
||||
info ""
|
||||
info "Comandos úteis:"
|
||||
info " Ver o status do timer: systemctl status proxy-sinc.timer"
|
||||
info " Ver o status do timer de sincronização: systemctl status proxy-sinc.timer"
|
||||
info " Ver o status do timer de atualização: systemctl status proxy-sinc-update.timer"
|
||||
info " Ver os logs da última execução: systemctl status proxy-sinc.service"
|
||||
info " Ver o histórico de logs: journalctl -u proxy-sinc.service"
|
||||
info " Ler o manual de ajuda: man proxy-sinc"
|
||||
info " Para atualizar o serviço no futuro: proxy-sinc-update"
|
||||
info " Para forçar uma atualização agora: sudo proxy-sinc-update"
|
||||
info ""
|
||||
info "Para adicionar novos ficheiros/pastas à sincronização, edite:"
|
||||
info " /etc/proxy-sinc/paths.conf"
|
||||
info ""
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue