#!/bin/bash DB_HOST="localhost" DB_PORT="5432" DB_USER="report_db" DB_NAME="report_db" DB_PASSWORD="123456" # ATENÇÃO: Em produção, considere usar .pgpass ou outra forma segura para a senha API_URL="https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=365&interval=daily" echo "Buscando dados diários do Bitcoin dos últimos 365 dias..." RESPONSE=$(curl -s "$API_URL") if [ -z "$RESPONSE" ]; then echo "Não foi possível obter resposta da API. Verifique sua conexão ou a URL." exit 1 fi # Itera sobre cada item de preço echo "$RESPONSE" | jq -c '.prices[]' | while read -r item; do timestamp=$(echo "$item" | jq -r '.[0]') price=$(echo "$item" | jq -r '.[1]') # Converte o timestamp para data (YYYY-MM-DD). Use -u para GMT/UTC. date=$(date -u -d "@$((timestamp/1000))" '+%Y-%m-%d') echo "Inserindo valor BTC de $price em $date..." # Comando psql para inserir dados # O "ON CONFLICT (btc_value_date) DO NOTHING" é crucial aqui para não falhar em datas duplicadas. PGPASSWORD="$DB_PASSWORD" psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" <