Code source wiki de ScriptsPerso
Modifié par john le 2025/05/25 00:19
Afficher les derniers auteurs
| author | version | line-number | content |
|---|---|---|---|
| 1 | = Scripts personnels = | ||
| 2 | |||
| 3 | {{toc/}} | ||
| 4 | |||
| 5 | == Présentation == | ||
| 6 | |||
| 7 | Cette section regroupe mes **scripts Bash et outils d’automatisation** développés ou adaptés pour mes besoins personnels. | ||
| 8 | Ils couvrent des tâches variées : sauvegardes, nettoyage de fichiers, interactions graphiques avec Zenity, organisation de fichiers, etc. | ||
| 9 | |||
| 10 | ---- | ||
| 11 | |||
| 12 | == Pourquoi écrire ses propres scripts ? == | ||
| 13 | |||
| 14 | Créer ses scripts permet de : | ||
| 15 | |||
| 16 | * **Automatiser les tâches répétitives** : sauvegardes, nettoyages, déploiements… | ||
| 17 | * **Réduire les erreurs humaines** | ||
| 18 | * **Adapter l’environnement à ses habitudes** | ||
| 19 | * **Documenter une procédure sous forme de code** | ||
| 20 | |||
| 21 | Un bon script, c’est une forme de documentation exécutée à la volée. | ||
| 22 | |||
| 23 | ---- | ||
| 24 | |||
| 25 | == Bonnes pratiques à suivre == | ||
| 26 | |||
| 27 | * Toujours commencer par le shebang : | ||
| 28 | {{code language="bash"}} #!/bin/bash | ||
| 29 | {{/code}} | ||
| 30 | |||
| 31 | * Mettre le script en mode strict : | ||
| 32 | {{code language="bash"}} set -euo pipefail | ||
| 33 | IFS=$'\n\t' | ||
| 34 | {{/code}} | ||
| 35 | |||
| 36 | * Documenter les fonctions : | ||
| 37 | {{code language="bash"}} # Fonction : sauvegarde un répertoire | ||
| 38 | function sauvegarde() { | ||
| 39 | rsync -av "$1" "$2" | ||
| 40 | } | ||
| 41 | {{/code}} | ||
| 42 | |||
| 43 | * Utiliser `getopts` pour gérer les options : | ||
| 44 | {{code language="bash"}} while getopts ":s:d:" opt; do | ||
| 45 | case $opt in | ||
| 46 | s) source=$OPTARG ;; | ||
| 47 | d) dest=$OPTARG ;; | ||
| 48 | esac | ||
| 49 | done | ||
| 50 | {{/code}} | ||
| 51 | |||
| 52 | ---- | ||
| 53 | |||
| 54 | == Liste des scripts disponibles == | ||
| 55 | |||
| 56 | === 🔹 [[Sauvegarde automatique>>Wiki Batcave John.TutosLinux.ScriptsPerso.ScriptsPerso/Sauvegarde.WebHome]] === | ||
| 57 | |||
| 58 | Un script `rsync` avec journalisation et gestion via `cron`. | ||
| 59 | 📌 *Idéal pour sauvegarder ses documents sans effort.* | ||
| 60 | |||
| 61 | === 🔹 [[Nettoyage de système>>Wiki Batcave John.TutosLinux.ScriptsPerso.ScriptsPerso/Nettoyage.WebHome]] === | ||
| 62 | |||
| 63 | Un script qui supprime caches, fichiers temporaires, et dépendances orphelines. | ||
| 64 | 📌 *Parfait pour garder une machine légère et propre.* | ||
| 65 | |||
| 66 | === 🔹 [[Intégration Nautilus + Zenity>>Wiki Batcave John.TutosLinux.ScriptsPerso.ScriptsPerso/NautilusZenity.WebHome]] === | ||
| 67 | |||
| 68 | Ajoute des actions personnalisées au clic droit dans GNOME, via des boîtes de dialogue interactives. | ||
| 69 | 📌 *Super pour les utilisateurs moins à l’aise avec la ligne de commande.* | ||
| 70 | |||
| 71 | === 🔹 [[Organisation automatique de fichiers>>Wiki Batcave John.TutosLinux.ScriptsPerso.ScriptsPerso/Classement.WebHome]] *(à venir)* === | ||
| 72 | |||
| 73 | Trie automatiquement les fichiers dans des dossiers selon leur type, date ou nom. | ||
| 74 | |||
| 75 | ---- | ||
| 76 | |||
| 77 | == Où placer mes scripts ? == | ||
| 78 | |||
| 79 | * Personnel : `/bin/` ou `/.local/bin/` | ||
| 80 | * Système : `/usr/local/bin/` (nécessite `sudo`) | ||
| 81 | |||
| 82 | N’oublie pas d’ajouter le dossier à ton `$PATH` : | ||
| 83 | |||
| 84 | {{code language="bash"}} | ||
| 85 | export PATH=$HOME/bin:$PATH | ||
| 86 | {{/code}} | ||
| 87 | |||
| 88 | Et de rendre les fichiers exécutables : | ||
| 89 | {{code language="bash"}}chmod +x monscript.sh{{/code}} | ||
| 90 | |||
| 91 | ---- | ||
| 92 | |||
| 93 | == Bonnes idées de scripts futurs == | ||
| 94 | |||
| 95 | * Archivage automatique d’un dossier par date | ||
| 96 | * Extraction automatique de `.tar.gz` | ||
| 97 | * Notification de batterie faible | ||
| 98 | * Upload automatique vers Nextcloud | ||
| 99 | * Backup de base de données PostgreSQL/MariaDB | ||
| 100 | * Générateur de templates de page XWiki 🎯 | ||
| 101 | |||
| 102 | ---- | ||
| 103 | |||
| 104 | == Liens utiles == | ||
| 105 | |||
| 106 | * Explainshell.com [[https:~~/~~/explainshell.com/>>https://explainshell.com/]]— Pour comprendre une commande Bash ligne par ligne | ||
| 107 | * Bash Hackers Wiki [[https:~~/~~/wiki.bash-hackers.org/>>https://wiki.bash-hackers.org/]] | ||
| 108 | * Shellcheck [[https:~~/~~/www.shellcheck.net>>https://www.shellcheck.net]]//— Pour vérifier ses scripts en ligne// | ||
| 109 | |||
| 110 | ---- | ||
| 111 | |||
| 112 | == Liens internes == | ||
| 113 | |||
| 114 | * [[Retour à l’accueil>>doc:Wiki Batcave John.WebHome]] | ||
| 115 | * [[Tutos Linux>>Wiki Batcave John.TutosLinux]] |