[Thème] Script - Aide importante à la création d'un script shell

Applications, problèmes de configuration réseau
obelix1502
Daikyu
Messages : 71
Inscription : dim. 09 oct. 2016, 18:54
Localisation : Belgique
Contact :

[Thème] Script - Aide importante à la création d'un script shell

Message par obelix1502 »

Bonjour,
Je n'y connais pas encore grand chose en script bash. Aussi, j'aimerais que quelqu'un m'explique ou réalise en m'expliquant (si vous avez le temps bien sûr) la création de celui-ci.
Je m'explique :
Je possède un site web et un compte premium chez mega.nz.
J'aimerais que vous m'expliquiez ou me fassiez en m'expliquant un script shell qui contiendrait par exemple un cron qui me permettrait sur Mega.nz de faire deux sauvegardes par semaines des bases de données en .sql.tar.gz et une fois par semaine une sauvegarde du site complet qui pèse environ 3 Go.
D'avance merci.
Je paie une bière à celui ou celle qui y parvient.
CPU : 6 x Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz
Carte graphique : NVIDIA Corporation GP107 [GeForce GTX 1050]
Audio : NVIDIA Corporation GP107GL High Definition Audio Controller
Network controller : Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
PCI bridge : Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16)
Host bridge : Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers
Ram : 16 Go
Avatar de l’utilisateur
CoudUr
yeomen
Messages : 230
Inscription : sam. 06 avr. 2013, 17:12

Re: [Thème] Script - Aide importante à la création d'un script shell

Message par CoudUr »

Bonjour,

Il ne faut pas être nécessairement un "as" de la programmation pour faire un script bash, de la même manière qu'il n'est pas nécessaire d'être plombier chauffagiste pour purger un radiateur ou déboucher un siphon chez soi ;) Ne pas être un professionnel dans un domaine ne signifie pas obligatoirement "hors de notre portée".

Un script bash peut se contenter d'être une succession de commandes. Évidemment il est possible de l'améliorer mais ce n'est pas une obligation, tant que ça fonctionne et que cela suffit à celui qui l'utilise, c'est le principal.

Par exemple je peux faire ceci, c'est concis et visuellement paraît "plus pro":

Code : Tout sélectionner

#!/usr/bin/env bash
mkdir /tmp/Dossier{1..3}
touch /tmp/Dossier{1..3}/fichier{1..3}.txt
Mais si à la place je fais tout simplement ceci, ce n'est pas élégant c'est long et redondant mais ça fonctionne tout aussi bien:

Code : Tout sélectionner

#!/usr/bin/env bash
cd /tmp
mkdir Dossier1
mkdir Dossier2
mkdir Dossier3
touch Dossier1/fichier1.txt
touch Dossier2/fichier2.txt
touch Dossier3/fichier3.txt
Pour ton script, tu as identifié tes besoins:
1) faire une sauvegarde des données spécifiques de ton site
2) être capable d'envoyer une archive sur ton compte MEGA
3) répéter le script à heure précise

Il ne te reste plus qu'à savoir le faire en ligne de commande:
1) créer une archive tar.gz d'un ou plusieurs dossiers
2) dans le dépôt AUR il y a une application qui s'appelle "megatools" qui doit pouvoir remplir cette tâche qui correspond à l'envoi
3) la création d'un cron sous systemd ce fait avec des timers (voir le wiki fr ou le wiki us)

Après c'est de la mise en forme, du temps et des essais, la partie la plus marrante et frustrante à la fois :)
Pour debugger ton script tu le démarres avec l'option '-x' (par ex: "bash -x mon_script.sh"), ça aide beaucoup et cela rend le déroulement du script plus bavard, donc les erreurs sont mieux identifiables.

À mon avis tu trouveras toujours quelqu'un pour te donner un coup de main ou trouver une solution si tu fais face à un problème, mais de là à tout faire à ta place j'ai des doutes même pour une bière ;)

Voilà en espérant que cela t'aidera un petit peu dans ton projet.
Allez courage .


PS:
Je me permets de faire une remarque à propos du titre de ton poste, la syntaxe correcte c'est ton thème qui est à mettre en crochet, pas le mot "thème" lui-même :
[Script] Aide importante à la création d'un script shell
Avatar de l’utilisateur
papajoke
Elfe
Messages : 608
Inscription : sam. 30 août 2014, 19:54
Contact :

Re: [Thème] Script - Aide importante à la création d'un script shell

Message par papajoke »

bonjour

comme CoudUr, demander un script de A à Z n'a pas de sens:
- pas d’intérêt de lancer le script depuis "la maison" sinon autant faire la sauvegarde à la maison
- aucune idée de l'hébergement: avec mega je suppose qu'il faut impérativement installer un binaire sur le serveur (si pas vpn/dédié on oublie)
- Existe de très nombreux scripts php/sh sur le web pour la sauvegarde bd/site web donc en fait ton seul problème est mega ! et c'est un truc bien particulier (une ligne ou 2 lignes à modifier ? ftp par un truc mega)
obelix1502 a écrit :
mar. 08 déc. 2020, 01:09
un script shell qui contiendrait par exemple un cron qui me permettrait
C'est l'inverse ! tu fais ton script classique (sh,php,python,...) qui fonctionne en ligne de commande, et ensuite ce n'est que de l'administration linux: il est lancé automatiquement par cron ou systemd timer
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
obelix1502
Daikyu
Messages : 71
Inscription : dim. 09 oct. 2016, 18:54
Localisation : Belgique
Contact :

Re: [Thème] Script - Aide importante à la création d'un script shell

Message par obelix1502 »

Oui justement, après avoir utilisé mysqldump, j'aurais redirigé la sauvegarde depuis mon serveur qui contient mon site vers Mega.nz.

Ils m'ont créé un client ftp. Donc, il doit y avaoir moyen en commandes ftp (que je ne connais pas du tout) de renvoyer le fichier compressé zonep-20122020.sql.tar.gz vers Mega.

Si je veux le faire d'une telle façon, c'est du fait que je ne suis pas le seul à gérer le site. Donc en cas de plantage, les autres pourront récupérer la base de donnée via Mega.nz car c'est un compte commun :D

Étant donné que je suis très gravement malade, on ne sais jamais. De plus cette maladie ralenti très fortement mes neurones, cela dépend des jours. :cry:

Merci à tous.
CPU : 6 x Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz
Carte graphique : NVIDIA Corporation GP107 [GeForce GTX 1050]
Audio : NVIDIA Corporation GP107GL High Definition Audio Controller
Network controller : Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
PCI bridge : Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16)
Host bridge : Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers
Ram : 16 Go
Répondre