# Procédure : Upload automatique du site via FTP avec Cron

## 1. Installer lftp (client FTP robuste)

```bash
sudo apt install lftp -y
```

## 2. Créer le script d'upload

Crée `/home/alan/SITE/FTP-CRON/upload.sh` :

```bash
#!/bin/bash

HOST="votre-serveur.com"
USER="votre-utilisateur"
PASS="votre-mot-de-passe"
REMOTE_DIR="/www/site"
LOCAL_DIR="/home/alan/SITE"

lftp -c "
open -u $USER,$PASS $HOST
mirror -R --delete --verbose $LOCAL_DIR $REMOTE_DIR
quit
"
```

Rends-le exécutable :

```bash
chmod +x /home/alan/SITE/FTP-CRON/upload.sh
```

> **Sécurité** : Ne mets pas le mot de passe en dur. Utilise plutôt `~/.netrc` :
> ```
> machine votre-serveur.com
> login votre-utilisateur
> password votre-mot-de-passe
> ```
> Et référence-le dans le script avec `lftp -u "$USER" "$HOST"` (sans `$PASS`).

## 3. Planifier avec Cron

```bash
crontab -e
```

Ajoute une ligne (exemple : tous les jours à 3h du matin) :

```
0 3 * * * /home/alan/SITE/FTP-CRON/upload.sh >> /home/alan/SITE/FTP-CRON/upload.log 2>&1
```

### Exemples d'expressions cron

| Expression | Signification |
|---|---|
| `0 3 * * *` | Chaque jour à 3h |
| `*/30 * * * *` | Toutes les 30 minutes |
| `0 */6 * * *` | Toutes les 6 heures |
| `0 2 * * 1` | Chaque lundi à 2h |

## 4. Vérifier les logs

```bash
cat /home/alan/SITE/FTP-CRON/upload.log
```

## 5. Tester le script manuellement

```bash
/home/alan/SITE/FTP-CRON/upload.sh
```
