ajout deux chapitres Nextcloud

This commit is contained in:
Francois Pelletier 2021-07-09 00:49:36 -04:00
parent 6a1c3b5814
commit 6f62484e8a
22 changed files with 104 additions and 87 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

View file

@ -112,73 +112,3 @@ cd markdown # je reviens au repertoire d'origine
```
Note: [Pandoc](https://pandoc.org/) est un logiciel vraiment utile pour les créateurs de contenu, il permet de tout faire en Markdown (qui est facile à maîtriser), puis de publier sous une multitude de formats. Je vous conseille fortement d'y jeter un oeil.
## Programmer l'exécution de scripts
Nous avons maintenant créé le script parfait qui exécute les tâches ennuyantes que nous faisions auparavant manuellement. Maintenant, puisque nous planifions partir en vacances, il faut dire à notre système quand exécuter le script et à quelle fréquence. C'est ce que `cron` permet de faire sur GNU/Linux et macOS. Sur Windows, c'est le planificateur de tâches `schtasks.exe`.
Notez qu'il existe aussi des applications graphiques pour chacun de ces systèmes. Mais, vous êtes ici pour voir un peu de code non ?
### cron sur Linux et macOS
Le logiciel cron est inclus par défaut sur la majorité des systèmes macOS et GNU/Linux. Il n'y a donc rien à faire pour l'obtenir. Cependant, il est possible qu'il nécessite des accès additionnels pour bien fonctionner sur macOS.
Les instructions pour cron sont inscrites dans un fichier spécial au format `crontab` dans le répertoire `/etc/cron.d`. Il est aussi possible de mettre le script à exécuter dans un des 4 répertoires suivants
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
```
Le format des instructions dans un fichier `crontab` est défini comme dans cette illustration:
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
* * * * * * script_a_executer.sh
| | | | | |
| | | | | +--- nom utilisateur
| | | | +----- jour de la semaine (0-6) (Dimanche=0)
| | | +------- mois (1-12)
| | +--------- jour du mois (1-31)
| +----------- heure (0-23)
+------------- minutes (0-59)
```
Le comportement par défaut est d'exécuter le script à chaque minute. Ensuite, si on veut réduire la fréquence, on spécifie à quel moment exécuter le script.
Par exemple, pour exécuter un script `cocktail_aleatoire.sh` qui nous envoie une recette de cocktail au hasard à 16h30 chaque vendredi, on configure comme suit.
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
30 16 * * 5 jevalideca /home/jevalideca/cocktail_aleatoire.sh
```
### Planificateur de tâches sur Windows
Sur Windows, l'ensemble des tâches peuvent être planifiées depuis le Planificateur de tâches. En exécutant une commande PowerShell, il est possible de configurer une tâche similaire à la précédente.
À partir d'une session PowerShell, la séquence de commandes suivante configurera l'exécution du programme `cocktail_aleatoire.bat` à 16:30 chaque vendredi.
```{.powershell linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
$action = New-ScheduledTaskAction -Execute 'C:\Users\jevalideca\scripts\cocktail_aleatoire.bat'
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Friday -At 4:30pm
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "cocktail-aleatoire"
```
Une fois la commande exécutée, nous obtenons cette réponse:
```{.powershell linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
TaskPath TaskName State
-------- -------- -----
\ cocktail-aleatoire Ready
```
Nous pouvons valider le résultat dans la fenêtre du Planificateur de tâches.
![Capture d'écran du planificateur de tâches](capture_schtasks_cocktail.png)
## Conclusion
J'ai présenté deux techniques qui permettent de scripter et de configurer l'exécution automatique de tâches.
Il est maintenant possible de faire travailler ton ordinateur durant tes vacances !

69
chapitre_1_2.md Normal file
View file

@ -0,0 +1,69 @@
# Programmer l'exécution de scripts
Nous avons maintenant créé le script parfait qui exécute les tâches ennuyantes que nous faisions auparavant manuellement. Maintenant, puisque nous planifions partir en vacances, il faut dire à notre système quand exécuter le script et à quelle fréquence. C'est ce que `cron` permet de faire sur GNU/Linux et macOS. Sur Windows, c'est le planificateur de tâches `schtasks.exe`.
Notez qu'il existe aussi des applications graphiques pour chacun de ces systèmes. Mais, vous êtes ici pour voir un peu de code non ?
### cron sur Linux et macOS
Le logiciel cron est inclus par défaut sur la majorité des systèmes macOS et GNU/Linux. Il n'y a donc rien à faire pour l'obtenir. Cependant, il est possible qu'il nécessite des accès additionnels pour bien fonctionner sur macOS.
Les instructions pour cron sont inscrites dans un fichier spécial au format `crontab` dans le répertoire `/etc/cron.d`. Il est aussi possible de mettre le script à exécuter dans un des 4 répertoires suivants
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
```
Le format des instructions dans un fichier `crontab` est défini comme dans cette illustration:
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
* * * * * * script_a_executer.sh
| | | | | |
| | | | | +--- nom utilisateur
| | | | +----- jour de la semaine (0-6) (Dimanche=0)
| | | +------- mois (1-12)
| | +--------- jour du mois (1-31)
| +----------- heure (0-23)
+------------- minutes (0-59)
```
Le comportement par défaut est d'exécuter le script à chaque minute. Ensuite, si on veut réduire la fréquence, on spécifie à quel moment exécuter le script.
Par exemple, pour exécuter un script `cocktail_aleatoire.sh` qui nous envoie une recette de cocktail au hasard à 16h30 chaque vendredi, on configure comme suit.
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
30 16 * * 5 jevalideca /home/jevalideca/cocktail_aleatoire.sh
```
### Planificateur de tâches sur Windows
Sur Windows, l'ensemble des tâches peuvent être planifiées depuis le Planificateur de tâches. En exécutant une commande PowerShell, il est possible de configurer une tâche similaire à la précédente.
À partir d'une session PowerShell, la séquence de commandes suivante configurera l'exécution du programme `cocktail_aleatoire.bat` à 16:30 chaque vendredi.
```{.powershell linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
$action = New-ScheduledTaskAction -Execute 'C:\Users\jevalideca\scripts\cocktail_aleatoire.bat'
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Friday -At 4:30pm
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "cocktail-aleatoire"
```
Une fois la commande exécutée, nous obtenons cette réponse:
```{.powershell linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
TaskPath TaskName State
-------- -------- -----
\ cocktail-aleatoire Ready
```
Nous pouvons valider le résultat dans la fenêtre du Planificateur de tâches.
![Capture d'écran du planificateur de tâches](capture_schtasks_cocktail.png)
## Conclusion
J'ai présenté deux techniques qui permettent de scripter et de configurer l'exécution automatique de tâches.
Il est maintenant possible de faire travailler ton ordinateur durant tes vacances !

View file

@ -6,23 +6,22 @@ Pour ne pas oublier et garder un système frais et dispos, il est possible de le
## Sur GNU/Linux
Sur GNU/Linux, il n'y a pas de mécanisme uniforme pour effectuer les mises à jour. Chaque famille de distribution a son propre système de gestion de paquetages. Mais, pour simplifier les choses, je vais vous en montrer 3: Debian, RedHat et Arch. La majorité des distributions sont basées sur une de celles-ci.
Sur GNU/Linux, il n'y a pas de mécanisme uniforme pour effectuer les mises à jour. Chaque famille de distribution a son propre système de gestion de paquetages. Mais, pour simplifier les choses, je vais vous en montrer 2: Debian et Arch.
### Debian
Sur Debian, les mises à jour sont effectuées avec cette commande:
Sur Debian, les mises à jour sont effectuées en deux étapes:
- mettre à jour l'index des paquetages
- installer les nouvelles versions disponibles des paquetages
Il est possible de combiner ces deux actions avec cette commande:
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
sudo apt update && sudo apt upgrade
```
Il est possible d'automatiser les mises à jour de sécurité avec UnattendedUpgrades
~~TODO~~
### RedHat
~~TODO~~
Si on veut aller plus loin dans l'automatisation, il est possible de programmer les mises à jour de sécurité avec UnattendedUpgrades pour qu'elles s'effectuent en arrière-plan selon un calendrier précis sans avoir à s'en occuper.
### Arch
@ -41,7 +40,7 @@ yay -Syyu
## Sur macOS
~~TODO~~
Il est possible d'activer les mises à jour automatiques dans les préférences du App Store. Aussi simple que ça !
## Sur Windows

15
chapitre_2_1.md Normal file
View file

@ -0,0 +1,15 @@
# Classer ses photos de voyage avec Nextcloud
Nextcloud est un système d'autohébergement qui peut être installé à la maison, chez un hébergeur web, sur un serveur ou même chez un ami ! Il fonctionne à l'aide d'un système de fichiers similaire à Dropbox qui est disponible à la fois sur le web, sur mobile et sur PC, avec une synchronisation quasi instantanée.
![Capture d'écran de fichiers images en mode aperçu dans Nextcloud Fichiers](Images/nextcloud_fichiers_mobile_images.png)
Il comprend aussi un système d'étiquettes de fichiers qui permettent, en plus de faire une organisation par répertoires, de créer de nouvelles catégories. Chaque fichier peut avoir un nombre variable d'étiquettes. Il est aussi possible de créer des règles d'étiquetage automatique.
![Capture d'écran de l'utilisation des étiquettes dans Nextcloud Fichiers](Images/nextcloud_fichiers_tag.png)
Dans Nextcloud Photos, il est possible d'exploiter ces deux modes de classification. Tout est privé tant qu'on ne décide pas de le partager, mais en un clic, il est possible de partager un répertoire ou une étiquette à l'aide d'un lien public. C'est très pratique pour limiter l'accès à du contenu à des amis, des collègues ou des membres de la famille. Il est aussi possible de partager du contenu protégé par mot de passe ou pour une durée limitée.
![Capture d'écran du partage dans Nextcloud Fichiers](Images/nextcloud_fichiers_partage.png)
Nextcloud inclus un mode de visualisation par diaporama, qui peut être très pratique en déplacement. Tout ceci est aussi disponible autant sur mobile que sur poste de travail.

5
chapitre_2_2.md Normal file
View file

@ -0,0 +1,5 @@
# Cuisiner des recettes exotiques
Une fonctionnalité surprenante de Nextcloud est la capacité, via le module Cookbook, de composer un répertoire de recettes privé. Il comprend un formulaire qui permet la saisie de la description, des ingrédients et des instructions. Mais, de plus, il permet aussi d'importer des recettes depuis de nombreux sites qui respectent le standard ouvert [Recipe de schema.org](https://schema.org/Recipe). Un bel exemple d'utilisation du [web sémantique](https://fr.wikipedia.org/wiki/Web_s%C3%A9mantique). Selon mes tests, les sites web Zeste, Marmiton et Trois fois par jour fonctionne entièrement avec le module d'importation. Le site Ricardo fonctionne partiellement, tout comme l'Érable du Québec. Les sites Coup de Pouce et Recettes du Québec ne fonctionnent pas actuellement.
![Capture d'écran de Nextcloud Cookbook](Images/nextcloud_cookbook.png)

3
chapitre_2_3.md Normal file
View file

@ -0,0 +1,3 @@
# Enregistrer un parcours touristique
En utilisant l'application GpxPod sur Android

View file

@ -1,14 +1,14 @@
#!/bin/bash
mkdir -p ./chapitres
for section in {1..3}
do
for chapitre in {1..4}
do
pandoc -F pandoc-minted -f markdown+fenced_code_attributes -t latex --listings --top-level-division=chapter -i chapitre_${section}_${chapitre}.md -o ../chapitres/chapitre_${section}_${chapitre}.tex
pandoc -F pandoc-minted -f markdown+fenced_code_attributes -t latex --listings --top-level-division=chapter -i "chapitre_${section}_${chapitre}.md" -o "./chapitres/chapitre_${section}_${chapitre}.tex"
done
done
cd ../
pdflatex --shell-escape -synctex=1 -interaction=nonstopmode main.tex
cd markdown

View file

@ -1 +0,0 @@
# Rediriger ses alertes courriel

View file

@ -1 +0,0 @@
# Classer ses photos de voyage

View file

@ -1 +0,0 @@
# Cuisiner des recettes exotiques

View file

@ -1 +0,0 @@
# Définir un parcours touristique