Spaces:
Sleeping
Sleeping
| set -e | |
| if [ -z "$1" ]; then | |
| echo "Usage: $0 <HUGGINGFACE_TOKEN>" | |
| exit 1 | |
| fi | |
| HF_TOKEN="$1" | |
| VM_USER="student-admin" | |
| VM_HOST="paffenroth-23.dyn.wpi.edu" | |
| VM_PORT=22016 | |
| DEPLOY_SCRIPT_URL="https://raw.githubusercontent.com/keerthi042000/CaseStudy2/main/deploy.sh" | |
| CUSTOM_KEY="$HOME/.ssh/CaseStudy2_16" | |
| DEFAULT_KEY="$HOME/.ssh/student-admin_key" | |
| LOG_FILE="$HOME/MLOPS/CaseStudy2/cron_recovery.log" | |
| # List of public keys to allow access (add your teammates' public keys) | |
| PUBLIC_KEYS=( | |
| "$HOME/.ssh/CaseStudy2_16.pub" | |
| "$HOME/.ssh/CaseStudy2_16_Keerthi.pub" | |
| "$HOME/.ssh/CaseStudy2_16_GG.pub" | |
| "$HOME/.ssh/CaseStudy2_16_HP.pub" | |
| ) | |
| echo "$(date): Starting cron recovery..." >> "$LOG_FILE" | |
| # --- Try connecting with custom key --- | |
| if ssh -i "$CUSTOM_KEY" -p $VM_PORT -o ConnectTimeout=10 -o StrictHostKeyChecking=no $VM_USER@$VM_HOST "echo 1" &>/dev/null; then | |
| echo "$(date): VM reachable with custom key. Checking app..." >> "$LOG_FILE" | |
| ssh -i "$CUSTOM_KEY" -p $VM_PORT $VM_USER@$VM_HOST " | |
| if lsof -i:7860 > /dev/null; then | |
| echo 'App running on port 7860. No action.' | |
| exit 0 | |
| else | |
| echo 'App not running. Redeploying...' | |
| curl -s -L $DEPLOY_SCRIPT_URL -o ~/projects/deploy.sh | |
| bash ~/projects/deploy.sh $HF_TOKEN | |
| fi | |
| " | |
| else | |
| echo "$(date): Custom key failed. Trying default key..." >> "$LOG_FILE" | |
| if ssh -i "$DEFAULT_KEY" -p $VM_PORT -o ConnectTimeout=10 -o StrictHostKeyChecking=no $VM_USER@$VM_HOST "echo 1" &>/dev/null; then | |
| echo "$(date): Connected with default key. Updating authorized_keys..." >> "$LOG_FILE" | |
| # ssh -i "$DEFAULT_KEY" -p $VM_PORT $VM_USER@$VM_HOST ' | |
| # mkdir -p ~/.ssh | |
| # chmod 700 ~/.ssh | |
| # ' | |
| # for pubkey in "${PUBLIC_KEYS[@]}"; do | |
| # ssh -i "$DEFAULT_KEY" -p $VM_PORT $VM_USER@$VM_HOST "cat >> ~/.ssh/authorized_keys" < "$pubkey" | |
| # done | |
| # Step 1: Create temp file | |
| ssh -i "$DEFAULT_KEY" -p $VM_PORT $VM_USER@$VM_HOST "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat > ~/.ssh/authorized_keys <<'EOF' | |
| $(cat "$HOME/.ssh/CaseStudy2_16.pub") | |
| $(cat "$HOME/.ssh/CaseStudy2_16_Keerthi.pub") | |
| $(cat "$HOME/.ssh/CaseStudy2_16_GG.pub") | |
| $(cat "$HOME/.ssh/CaseStudy2_16_HP.pub")" | |
| ssh -i "$CUSTOM_KEY" -p $VM_PORT $VM_USER@$VM_HOST 'chmod 600 ~/.ssh/authorized_keys' | |
| # ssh -i "$DEFAULT_KEY" -p $VM_PORT $VM_USER@$VM_HOST 'chmod 600 ~/.ssh/authorized_keys' | |
| echo "$(date): Redeploying app..." >> "$LOG_FILE" | |
| ssh -i "$CUSTOM_KEY" -p $VM_PORT $VM_USER@$VM_HOST " | |
| curl -s -L $DEPLOY_SCRIPT_URL -o ~/deploy.sh | |
| bash ~/deploy.sh $HF_TOKEN | |
| " | |
| else | |
| echo "$(date): VM unreachable with both keys." >> "$LOG_FILE" | |
| fi | |
| fi | |