Forum Linux.débutant copie de fichier avec des options avancées

Posté par  (site web personnel) .
Étiquettes : aucune
0
12
avr.
2006
Bonjour,

je suis débutant en bash script et j'aimerais faire un script qui va copier les fichiers importants du système à l'endroit de mon choix, j'aimerais surtout que la date soit indiquée (éventuellement l'heure) dans le nom du fichier, si quelqu'un peut m'aider quand à la syntaxe à utiliser:

cp /etc/fichier_important /mnt/sauvegarde/fichier_important_$DATE ou quelque chose du style ???

Merci =)

Bonne journée

Romain
  • # En deux coups

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

    #!/bin/bash

    DATE=`date +"%d%m%Y"`
    cp /etc/fichier_important /mnt/sauvegarde/fichier_important_$DATE
    cp /etc/fichier_important_aussi /mnt/sauvegarde/fichier_important_aussi_$DATE

    La gelée de coings est une chose à ne pas avaler de travers.

    • [^] # Re: En deux coups

      Posté par  . Évalué à 4.

      DATE=`date +"%d%m%Y"`

      Je préfère %Y%m%d : lorsque tu fais un ls par exemple les fichiers sont classés de suite.
      • [^] # Re: En deux coups

        Posté par  (site web personnel) . Évalué à 1.

        La solution année-mois-date est effectivement plus simple à utiliser lors d'un affichage.

        D'ailleurs la commande date dispose d'une option directement adaptée à ce genre de chose :

        %F same as %Y-%m-%d
        • [^] # Re: En deux coups

          Posté par  . Évalué à 2.

          propre a gnu date: pas forcément portable ailleurs.
          C'est toujours bon de préciser ce genre de détail.
          • [^] # Re: En deux coups

            Posté par  (site web personnel) . Évalué à 1.

            magnifique :) merci pour toutes ces réponses !

            @+
            • [^] # Re: En deux coups

              Posté par  (site web personnel) . Évalué à 0.

              C'est possible d'entrer le path d'un répertoire dans une variable ???

              Genre

              PATH='/home/xenon/test`
              cp /etc/X11/xorg.conf $PATH/xorg.conf

              Pour éviter de retapper tout les path si je change mon répertoire de destination.

              Merci bon week-end de Pâques :)
              • [^] # Re: En deux coups

                Posté par  . Évalué à 2.

                oui mais évite d'utiliser la variable PATH qui est une varible utilisée par le shell pour connaitre le chemin d'accès aux commandes que tu exécute.

                fais un truc du genre REP_DEST="/mon/repertoire/destination"
  • # Script

    Posté par  (site web personnel) . Évalué à 1.

    Voilà le script au final :)

    #!/bin/sh
    #
    echo "Starting backup script"
    #
    #
    #On va commencer par renseigner les variables necessaires
    DATE=`date +"%Y.%m.%d"`
    BACKUPDIR=/mnt/hdc1/linux_backup/gateway/weekly_backup
    BACKUPDIROLD=/mnt/hdc1/linux_backup/gateway/weekly_backup_old
    #
    #On commence par virer tout les anciens backups
    rm $BACKUPDIROLD/*
    #
    #Ensuite on va copier tout les anciens fichiers de config dans les archives
    cp $BACKUPDIR/* $BACKUPDIROLD/
    #
    #Ensuite on va supprimer tout les anciens fichiers de config
    rm $BACKUPDIR/*
    #
    #Liste des fichiers a copier
    #
    echo "copying files"
    cp /etc/hdparm.conf $BACKUPDIR/hdparm.conf_$DATE
    cp /usr/local/etc/raddb/clients $BACKUPDIR/radius_clients_$DATE
    cp /usr/local/etc/raddb/radiusd.conf $BACKUPDIR/radiusd.conf_$DATE
    cp /usr/local/etc/raddb/eap.conf $BACKUPDIR/radius_eap.conf_$DATE
    cp /usr/local/etc/raddb/users $BACKUPDIR/radius_users_$DATE
    cp /etc/vsftpd.conf $BACKUPDIR/vsftpd.conf_$DATE
    cp /etc/vsftpd.chroot_list $BACKUPDIR/vsftpd.chroot_list_$DATE
    cp /etc/network/iptables.conf $BACKUPDIR/iptables.conf_$DATE
    cp /etc/network/interfaces $BACKUPDIR/interfaces_$DATE
    cp /etc/dhcp3/dhcpd.conf $BACKUPDIR/dhcpd.conf_$DATE
    cp /usr/bin/backup $BACKUPDIR/backup_script_$DATE
    #
    #creation d'une archive gzip des fichiers copies
    echo ""
    echo "creating gz archive..."
    #
    tar czf $BACKUPDIR/backup_gw_$DATE.tar.gz $BACKUPDIR/*
    #
    echo ""
    echo "done"

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.