version avec contenu complété mais non corrigé
This commit is contained in:
parent
8fe69cfebf
commit
a3f7e35b26
22 changed files with 341 additions and 176 deletions
110
overflow/overflow.md
Normal file
110
overflow/overflow.md
Normal file
|
@ -0,0 +1,110 @@
|
|||
### L'appel de logiciels
|
||||
|
||||
Il peut être appelé depuis Bash comme suit:
|
||||
|
||||
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
|
||||
mon_code="Dir['*'].each { |p| File.rename(p, p.downcase) }"
|
||||
ruby -e ${mon_code}
|
||||
```
|
||||
|
||||
- Le script Bash écrit la chaîne de caractère qui contient le code Ruby dans la variable `mon_code`.
|
||||
- Ensuite, il envoie le contenu de `mon_code` à l'interpréteur du langage Ruby
|
||||
|
||||
### La manipulation de fichiers
|
||||
|
||||
comme suit:
|
||||
|
||||
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
|
||||
pdftk \
|
||||
page_couverture.pdf \
|
||||
table_matieres.pdf \
|
||||
chapitre_1.pdf \
|
||||
chapitre_2.pdf \
|
||||
conclusion.pdf \
|
||||
cat output mon_ebook.pdf
|
||||
```
|
||||
|
||||
- On lance le logiciel `pdftk`
|
||||
- Ensuite, on énumère dans l'ordre tous les fichiers à concaténer
|
||||
- On spécifie l'action. Le mot `cat` est souvent utilisé pour la concaténation.
|
||||
- On spécifie le fichier de sortie après `output`. Ici, c'est `mon_ebook.pdf`
|
||||
|
||||
Petite note: la barre oblique `\` c'est pour couper les lignes pour les rendre plus faciles à lire !
|
||||
|
||||
### Les tubes
|
||||
|
||||
Par exemple, si je veux trouver tous les livres sur le logiciel Spark qui se trouvent dans ma bibliothèque Nextcloud, la commande Bash correspondante prend la forme suivante:
|
||||
|
||||
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
|
||||
find "nextcloud/Livres" -type f | \
|
||||
grep -i "voyage|travel"
|
||||
```
|
||||
|
||||
- Le premier argument de find est le répertoire de recherche, ici c'est `nextcloud/Livres/Technical`.
|
||||
- Le premier paramètre est `type`, avec comme valeur `f`, pour rechercher uniquement les fichiers.
|
||||
- Ensuite, il y a un tube vers la commande `grep`
|
||||
- `grep` a un paramètre, `-i` qui spécifie que ce qui suit n'est pas sensible à la casse (an anglais *case insentitive*)
|
||||
- Enfin, il y a l'expression de recherche `voyage|travel` qui va retourner tous les noms de fichiers qui contiennent soit le mot `voyage`, soit le mot `travel`
|
||||
|
||||
### cron sur Linux et macOS
|
||||
|
||||
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 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.
|
||||
|
||||
### Planificateur de tâches sur Windows
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
### Tester avant d'exécuter
|
||||
|
||||
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
|
||||
rsync -av \
|
||||
--dry-run \
|
||||
--progress \
|
||||
--delete \
|
||||
/source/mondossier \
|
||||
/destination/mondossier
|
||||
```
|
||||
|
||||
### Fin de l'exécution
|
||||
|
||||
Lorsque la commande est terminée, ça va produire un sommaire comme suit:
|
||||
|
||||
```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
|
||||
sent 391,414,597 bytes received 16,270 bytes 46,050,690.24 bytes/sec
|
||||
total size is 391,253,238 speedup is 1.00
|
||||
```
|
||||
|
||||
Afin de valider que la sauvegarde est bien réussie, il suffit d'exécuter à nouveau la commande. Si aucun fichier n'est synchronisé, alors c'est le cas !
|
||||
|
||||
## Sur Windows
|
||||
|
||||
Voici le code pour installer cette extension
|
||||
|
||||
```{.powershell linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
|
||||
Install-Module PSWindowsUpdate
|
||||
```
|
||||
|
||||
Une fois installée,
|
||||
|
||||
Nous allons configurer les mises à jour pour qu'elles s'installent chaque jour à 2h du matin.
|
||||
|
||||
```{.powershell linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"}
|
||||
$action = New-ScheduledTaskAction -Execute 'Get-WindowsUpdate -AcceptAll -Install -AutoReboot'
|
||||
$trigger = New-ScheduledTaskTrigger -Daily -At 2am
|
||||
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "mise-a-jour-nocturne"
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue