---
# System prepended metadata

title: Cheatsheet serveur Urbike

---

# Cheatsheet serveur Urbike

[TOC]

## Intro: fonctionnement global

On peut créer nos propres commandes bash en utilisant la méthode `alias`:

```bash
# création d'une commande
alias say_hello_world="echo 'hello world'"

# exécution de la commande
say_hello_world
# retourne "hello world"
```
On peut ensuite enregistrer ces commandes dans le fichier `.bashrc` ou encore mieux: `.bash_aliases`, qui se trouve dans le dossier Home de votre ordinateur (pour aller rapidement dans votre dossier utilisateur, utilisez le tilde ~ : `cd ~`). Parfois le `.bash_aliases` n'existe pas ; vous pouvez dans ce cas là mettre les liases dans votre `.bashrc` 

Vous pouvez à présent utiliser un éditeur de texte pour l'ouvrir. Si vous ne trouvez pas le fichier dans votre explorateur, activez l'affichage des fichiers cachés.


## Connexion SSH basique

```bash
alias ssh_urbike='ssh <VOTRE_NOM_DUTILISATEUR>@141.95.152.227'
```

Pour vous connecter au serveur, il faudra aussi que vous vous soyez créé une clé SSH et que quelqu'un qui a accés au serveur l'ait ajouté aux clés SSH autorisées. Une fois cette manipulation effectuée, vous pourrez lancer des commandes sur le serveur. Voir [la partie sur l'ajout d'utilisateurs](#Je-veux-permettre-à-une-nouvelle-personne-d’accéder-au-serveur-comment-faire-)


## Le `.bash_aliases` complet

:::danger
Attention, remplacez bien **`{{VOTRE_NOM_DUTILISATEUR}}`** par votre **nom d'utilisateur** réel sur le serveur !
:::

Copiez le code ci-dessous à l'intérieur de votre `.bash_aliases`. De cette manière, vous aurez aussi la suggestion des commandes disponibles facilement, en tapant deux fois sur `TAB`:

```bash
jules@julesPC:~ $ ssh_urbike
ssh_urbike
ssh_urbike_get_logs
ssh_urbike_launch_script
ssh_urbike_log_sdroad_exports_bls
ssh_urbike_log_sdroad_ftp_delete
ssh_urbike_log_sdroad_ftp_status_reports
ssh_urbike_log_sdroad_imports_bruxelles
ssh_urbike_log_sdroad_imports_gent
ssh_urbike_log_sdroad_slack_notifications_gent
ssh_urbike_log_sdroad_slack_notifications_vt
ssh_urbike_sdroad_exports_bls
ssh_urbike_sdroad_exports_bls_pdfs
ssh_urbike_sdroad_ftp_delete
ssh_urbike_sdroad_ftp_status_reports
ssh_urbike_sdroad_imports_bruxelles
ssh_urbike_sdroad_imports_gent
ssh_urbike_sdroad_slack_notifications_gent
ssh_urbike_sdroad_slack_notifications_vt

```

```bash
URBIKE_USER={{VOTRE_NOM_DUTILISATEUR}}


# ----- Fonctions génériques

# Connexion rapide au serveur en SSH
alias ssh_urbike="ssh ${URBIKE_USER}@141.95.152.227"

scp_urbike() {
	scp ${URBIKE_USER}@141.95.152.227:~/$1/$2 $2
}

# Gérer les logs d'un script sur le serveur:
#  - les lister: `ssh_urbike_get_logs <nom_du_dossier_du_script`
#  - afficher un fichier de logs: `ssh_urbike_get_logs <nom_du_dossier_du_script nom_du_fichier.txt`
ssh_urbike_get_logs() {
    if [[ $2 ]]; then
        # Download the file at path requested
        ssh_urbike "cat ~/$1/$2"
    else
        # List exports
        ssh_urbike "cd ~/$1 && ls | grep ".txt""
    fi
}

# Lancer un script sur le serveur. On peut donner un argument optionnel:
# `ssh_urbike_launch_script nom_du_dossier_du_script [argument_optionnel]`
ssh_urbike_launch_script() {
    ssh_urbike "cd ~/$1 && python3 ./main.py $2"
}


# ----- SDRoad-Exports-BLs

# Consulter les logs
alias ssh_urbike_log_sdroad_exports_bls='ssh_urbike_get_logs SDRoad-Exports-BLs'

# Lancer manuellement le script de génération de PDF pour la date d'aujourd'hui
alias ssh_urbike_sdroad_exports_bls='ssh_urbike_launch_script SDRoad-Exports-BLs'
# pour le lancer, écrivez la commande `ssh_urbike sdroad_pods` pour le lancer pour aujourd'hui, ou `ssh_urbike_sdroad_pods 2022-03-01` pour une date particulière ici par exemple le 1er mars 2022.

# Gérer les exports PDF sur le serveur:
#  - les lister: `ssh_urbike_sdroad_pods_exports`
#  - en télécharger un: `ssh_urbike_sdroad_pods_exports nom_de_lexport_sur_le_serveur.pdf`
ssh_urbike_sdroad_exports_bls_pdfs() {
	if [[ $1 ]]; then
        # Download the file at path requested
        scp_urbike SDRoad-Exports-BLs $1
    else
        # List exports
        ssh_urbike 'cd ~/SDRoad-Exports-BLs && ls | egrep "*\.pdf"'
    fi
}


# ----- SDRoad-FTP-Delete

# Lancer le script
alias ssh_urbike_sdroad_ftp_delete='ssh_urbike_launch_script SDRoad-FTP-Delete'

# Afficher les logs
alias ssh_urbike_log_sdroad_ftp_delete='ssh_urbike_get_logs SDRoad-FTP-Delete'


# ----- SDRoad-FTP-Status-Reports

# Lancer le script
alias ssh_urbike_sdroad_ftp_status_reports='ssh_urbike_launch_script SDRoad-FTP-Status-Reports'

# Afficher les logs
alias ssh_urbike_log_sdroad_ftp_status_reports='ssh_urbike_get_logs SDRoad-FTP-Status-Reports'


# ----- SDRoad-Imports-Bruxelles && SDRoad-Imports-Gent 

# Lancer le script
alias ssh_urbike_sdroad_imports_bruxelles='ssh_urbike_launch_script SDRoad-Imports-Bruxelles'
alias ssh_urbike_sdroad_imports_gent='ssh_urbike_launch_script SDRoad-Imports-Gent'

# Afficher les logs
alias ssh_urbike_log_sdroad_imports_bruxelles='ssh_urbike_get_logs SDRoad-Imports-Bruxelles'
alias ssh_urbike_log_sdroad_imports_gent='ssh_urbike_get_logs SDRoad-Imports-Gent'


# ----- SDRoad-Slack-Notifications-VT && SDRoad-Slack-Notifications-GENT

# Lancer le script
alias ssh_urbike_sdroad_slack_notifications_vt='ssh_urbike_launch_script SDRoad-Slack-Notifications-VT'
alias ssh_urbike_sdroad_slack_notifications_gent='ssh_urbike_launch_script SDRoad-Slack-Notifications-GENT'

# Afficher les logs
alias ssh_urbike_log_sdroad_slack_notifications_vt='ssh_urbike_get_logs SDRoad-Slack-Notifications-VT'
alias ssh_urbike_log_sdroad_slack_notifications_gent='ssh_urbike_get_logs SDRoad-Slack-Notifications-GENT'
```

## Je veux permettre à une nouvelle personne d'accéder au serveur, comment faire ?

:::info 
Il faut déjà que vous ayiez les droits admin sur le serveur. Si ce n'est pas le cas, vous ne pourrez pas faire la démarche.
:::

Vous aurez besoin de demander la **clé SSH publique** de la personne pour laquelle vous souhaitez créer le compte. Elle est souvent située dans `~/.ssh/id_rsa.pub` (attention, id_rsa est la clé *privée*, ne donnez que la clé publique !)

Connectez-vous au serveur, puis effectuez les manipulations suivantes :

```bash
# Créer le nouvel utilisateur
sudo adduser <NOUVEAU_NOM_DUTILISATEUR>

# Créer le répertoire `.ssh` de l'utilisateur
sudo mkdir /home/<NOUVEAU_NOM_DUTILISATEUR>/.ssh

# Rentrez dans ce dossier
cd /home/<NOUVEAU_NOM_DUTILISATEUR>/.ssh # rentrez dans le dossier

# Ouvrez le fichier `authorized_keys` ...
sudo nano authorized_keys 
# ...et collez la clé publique de la personne à l'intérieur du fichier. 
# Sortez du document en sauvant les modifs (Cmd+S) puis en quittant (Cmd+X)
```

Si vous souhaitez donner les **droits d'admin** à un utilisateur, vous pouvez effectuer la manipulation supplémentaire suivante :
```bash
# Ajouter le user au groupe sudo
sudo usermod -aG sudo <user>
```
Cela permet à cet utilisateur de pouvoir ajouter des utilisateurs à son tour. 
