Aller au contenu

comment créer un script automatique


jakol

Messages recommandés

salut je souhaiterais savoir comment on fait pour écrire un script automatique qui permettrait de faire une sauvegarde automatique de données

je me suis renseigné sur cron...mais je n'y comprends pas grand chose...

ce serait vraiment sympa si vous pouviez m'aider pour comprendre le fonctionnement d'un script automatique sous linux...

merci d'avance pour vos conseils

:yes:

Lien vers le commentaire
Partager sur d’autres sites

D'abord tu crée un script qui fait ce que tu veux... (puisque tu ne demandes pas... enfin pour des sauvegardes il y a dar http://dar.linux.free.fr/ qui peut être utile, sinon y'a la bonne vieille méthode du tar...)

Après, tu lance "crontab -e" avec l'utilisateur que tu veux, et tu rajoutes une ligne :

M H  JDM M JDS commande

M=minute : 0-59

H=Heure : 0-23

JDM=Jour Du Mois : 0-31 (le 1er, le 2, etc...)

M=Mois : 0-12 ou nom

JDS=Jour De la Semaine : 0-7 ou nom (0=7=dimanche)

*signifie "n'importe"

/y permet d'utiliser un pas

Par exemple, */2 prendra toutes les valeur (de l'intervalle), séparées de 2, donc 0,2,4,6 etc...

x-y permet de prendre un intervalle

x,y,z,... permet de mettre plusieurs valeurs

à partir de ça, tu peux combiner, par exemple :

25-45/2,0 */4 */2,10-15 * 0 commande

ce qui lancera "commande" chaque dimanche ET tous les mois, une fois tous les deux jours sauf entre le 10 et le 15 où ce sera chaque jour, une fois toutes les 4 heures, juste après l'heure qui passe et une fois toutes les deux minutes entre les minutes 25 et 45...

Mais sinon pour un usage courant, c'est plutôt un truc genre :

0 0 * * * commande

à minuit de chaque jour, la commande est lancée

0 0 * * 0 commande

chaque dimanche à minuit...

Lien vers le commentaire
Partager sur d’autres sites

(pour le script de backup, un petit coup de tar ou de cpio ... cf les commandes man associées)

sinon pour recopier une arbo sur une autre machine je recommande unison ...

les scripts maison sont mieux dans /usr/local/bin

pour l'utilisation de crontab, ça dépend parfois de ta distrib ...

Lien vers le commentaire
Partager sur d’autres sites

Moi je procède comme ceci:

Je me fais un fichier batch

Exemple d'un backup via FTP (/serveur/scripts/ftpsend):

##############################
# Script de transfert de données sur srv-bck #
##############################

# NOTE: Ce script doit être cédulé à l'aide d'une tâche CRON

# Compression et archivage du dossier WWW et Webalizer dans /serveur
echo Archivage du site web...
tar -czf /serveur/www.tar.gz -C /serveur/ www/
echo Archivage des rapports webalizer...
tar -czf /serveur/webalizer.tar.gz -C /serveur/ webalizer/

# Envoi des données WWW et Webalizer sur srv-bkp
echo Envoi des données du site web via FTP...
ncftpput -u user -p password srv-bkp.domain.com backup/www/ /serveur/www.tar.gz

ncftpput -u user -p password srv-bkp.domain.com intra/admin/reports/www/ /serveur/webalizer.tar.gz

# Envoi du rapport de scanne Antivirus
echo Envoi du rapport antivirus via FTP...
ncftpput -u user -p password srv-bkp.domain.com intra/admin/reports/www/virus/ /serveur/virus.txt

# Copie des données importantes dans le dossier de sauvegarde
echo Sauvegarde des données importantes...
tar -czf /serveur/backup/httpd/webmin_webalizer_conf.tar.gz -C /etc/webmin/ webalizer/
tar -czf /serveur/backup/httpd/webmin_cur_and_hist.tar.gz -C /var/lib/ webalizer/
cp /etc/webalizer.conf /serveur/backup/httpd/webalizer.conf
cp /etc/httpd/conf/httpd.conf /serveur/backup/httpd/httpd.conf
cp /etc/httpd/conf/access.conf /serveur/backup/httpd/access.conf
cp /etc/httpd/conf/srm.conf /serveur/backup/httpd/srm.conf
cp /etc/httpd/conf/magic /serveur/backup/httpd/magic
cp /etc/ftpaccess /serveur/backup/wuftpd/ftpaccess
cp /etc/rc.d/fw10 /serveur/backup/rc.d/fw10
cp /etc/rc.d/rc.local /serveur/backup/rc.d/rc.local
cp -R /etc/log.d /serveur/backup/
cp -R /etc/cron.hourly /serveur/backup/
cp -R /etc/cron.daily /serveur/backup/
cp -R /etc/cron.weekly /serveur/backup/
cp -R /etc/cron.monthly /serveur/backup/
cp -R /etc/cron.d /serveur/backup/
cp -R /var/spool/cron /serveur/backup/
cp /etc/crontab /serveur/backup/crontab

# Compression et archivage du dossier BACKUP et SCRIPTS
echo Archivage des données importantes...
tar -czf /serveur/backup.tar.gz -C /serveur/ backup/
tar -czf /serveur/scripts.tar.gz -C /serveur/ scripts/

# Envoi d'une copie de sauvegarde des scripts et des configurations
echo Envoi des données importantes via FTP...
ncftpput -u user -p password srv-bkp.domain.com backup/www/ /serveur/backup.tar.gz
ncftpput -u user -p password srv-bkp.domain.com backup/www/ /serveur/scripts.tar.gz

Je fais un lien symbolique de ce batch dans /bin pour le rendre exécutable de n'importe où.

cd /bin
ln -s /serveur/scripts/ftpsend

Et finalement je configure une tâche CRON à une certaine heure pour qu'il exécute mon fichier batch ftpsend.

Dans le fichier /var/spool/cron/root j'ajoute la ligne:

40 4 * * * /bin/ftpsend

Donc à tous les jours à 4:40 ça s'exécute !

------------------------------

NOTE: Pour CRON, il y a plusieurs façon d'ajouter une tâche. Tout dépendant de ta distribution. Il y a via /var/spool/cron/nom_usager, il y a dans /etc/ que tu peux retrouver des sous-dossier /cron.daily, /cron.weekly, .... et dans le dossier /etc/cron.d également.

-----------------------------

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...