Skip to content

sox posteets tagged bash

 

  • 6 years ago and saved by 1 other
    automatically create a SVN repository from a web project directory including trunk, branches and tags
    1. #!/bin/bash
    2. # Vous pouvez éditer ces variables selon vos besoins
    3. SVN_ROOT=“/srv/unit1/svn”
    4. SVN_TMP_PATH=“/tmp/svn”
    5. $SVN_USER=“svn”
    6. $SVN_GROUP=“svn”
    7. # Ce script doit être executé avec les droits de superutilisateur
    8. testw /root;
    9. if [ ! “$?” -eq “0” ]; then
    10.         echo “Vous devez executer ce script en tant que superutilisateur.”
    11.         exit 0
    12. fi
    13. echo “#######################################”
    14. echo “Création d’un nouveau projet Subversion”
    15. echo “#######################################”
    16. echo “”
    17. echo “Tapez le nom du nouveau projet :”
    18. read PROJECT_NAME
    19. if [ -z “$PROJECT_NAME” ]; then
    20.         echo “$PROJECT_NAME n’est pas un nom de projet valide.”;
    21.         exit 0
    22. fi
    23. echo “Tapez maintenant le chemin du répertoire source :”
    24. echo “(Note: les répertoires trunk, branches et tags seront créés automatiquement)”
    25. read PROJECT_SOURCE_PATH
    26. if [ -z “$PROJECT_SOURCE_PATH” -o ! -d $PROJECT_SOURCE_PATH ]; then
    27.         echo “$PROJECT_SOURCE_PATH n’est pas un répertoire valide.”;
    28.         exit 0
    29. fi
    30. echo “Création du projet $PROJECT_NAME depuis $PROJECT_SOURCE_PATH…”
    31. # Si le répertoire $SVN_ROOT n’existe pas, on le crée
    32. if [ ! -d $SVN_ROOT ]; then
    33.         mkdir $SVN_ROOT
    34. fi
    35. # Si le répertoire $SVN_TMP_PATH n’existe pas, on le crée
    36. if [ ! -d $SVN_TMP_PATH ]; then
    37.         mkdir $SVN_TMP_PATH
    38. fi
    39. # Création du répertoire du dépôt
    40. mkdir $SVN_ROOT/$PROJECT_NAME
    41. # Création d’un répertoire temporaire de stockage avant import
    42. mkdir $SVN_TMP_PATH/$PROJECT_NAME
    43. mkdir $SVN_TMP_PATH/$PROJECT_NAME/branches
    44. mkdir $SVN_TMP_PATH/$PROJECT_NAME/tags
    45. mkdir $SVN_TMP_PATH/$PROJECT_NAME/trunk
    46. # Copie des fichiers originaux dans le répertoire temporaire
    47. cp -R $PROJECT_SOURCE_PATH/* $SVN_TMP_PATH/$PROJECT_NAME/trunk/
    48. # Création du dépôt et import depuis le répertoire créé
    49. svnadmin create $SVN_ROOT/$PROJECT_NAME
    50. svn import $SVN_TMP_PATH/$PROJECT_NAME file://$SVN_ROOT/$PROJECT_NAME -m “Initial import”
    51. # Attribution des permissions à Apache sur le repertoire du dépot
    52. chown -R $SVN_USER:$SVN_GROUP $SVN_ROOT/$PROJECT_NAME
    53. # Suppression du répertoire temporaire
    54. rm -rf $SVN_TMP_PATH/$PROJECT_NAME
    55. # Done !
    56. echo “”
    57. echo “Projet subversion $PROJECT_NAME créé avec succès dans $SVN_ROOT/$PROJECT_NAME !”
  • 7 years ago
    Il faut bien entendu que la version de gcc demandée soit installée.
    1. export CC=/usr/bin/gcc-4.1
  • 8 years ago and saved by 4 others
    Une option toute bête pour grep qui permet d’afficher en couleur l’expression recherchée dans le résultat. Ca ne casse pas trois pattes à un canard mais c’est sympa. Cela permet aussi de voir sur quelle partie du résultat, le match de l’expression s’est faite. C’est bien pour progresser et comprendre les regexp.
    1. grep –color EXPRESSION [FICHIER]
  • 8 years ago and saved by 1 other
    Pensez a fixer les deux paramètres pathRepo et pathBackup. Merci de me laisser un commentaire si vous en sentez le besoin.
    1. #!/bin/bash
    2. # Script de sauvegarde incrémentale d’un dépôt subversion
    3. # Il est possible de provoquer une sauvegarde complète en supprimant le dossier version ou son contenu
    4. # Paramètres
    5. # Chemin du dépôt à sauvegarder
    6. pathRepo=“/chemin/repository”;
    7. # Chemin du dossier de sauvegarde
    8. pathBackup=“/chemin/dossier/sauvegarde”;
    9. # Chemin du dossier pour mémoriser la dernière version sauvegardée
    10. pathNumVersion=$pathBackup“/version”;
    11. # Chemin du fichier de logs
    12. pathLog=$pathBackup“/backup.log”;
    13. # Nom du fichier (compris entre la date et l’extension)
    14. fileName=“backup_svn”;
    15. # Format de la date
    16. # Pour le nom du fichier
    17. dateFileFormat=“+%Y%m%d”;
    18. # Pour le log
    19. dateLogFormat=“+%Y-%m-%d %H:%M”;
    20. # Vérifications
    21. # Vérification de l’existence des dossiers de travail
    22. if [ ! -d $pathBackup ]; then
    23.         echo “Dossier $pathBackup inexistant”;
    24.         exit 1;
    25. fi
    26. echo “[$(date “$dateLogFormat“)] Début de la sauvegarde” >> $pathLog;
    27. # Création du dossier de la version si il n’existe pas
    28. if [ ! -d $pathNumVersion ]; then
    29.         mkdir $pathNumVersion;
    30. fi
    31. numVersionLastBackup=$(ls $pathNumVersion);
    32. if [ “$numVersionLastBackup” = “” ]; then
    33.         touch “$pathNumVersion/1”;
    34.         numVersionLastBackup=1;
    35. fi
    36. if [ $numVersionLastBackup -gt 1 ]; then
    37.         backupIncremental=” –incremental”;
    38.         typeBackup=“incr”;
    39. else
    40.         typeBackup=“full”;
    41. fi
    42. # Vérification de l’existance du dépôt
    43. if  ! (svnlook info $pathRepo 2>>$pathLog 1>“/dev/null”) ; then
    44.         echo “[$(date “$dateLogFormat“)] ERREUR : Repository $pathRepo inexistant” >> $pathLog;
    45.         echo “[$(date “$dateLogFormat“)] Fin de l’exécution – Sauvegarde non effectuée” >> $pathLog;
    46.         exit 1;
    47. fi
    48. # Récupération de la dernière version présente dans le dépôt
    49. youngestSvnVersion=$(svnlook youngest $pathRepo);
    50. echo “[$(date “$dateLogFormat“)] Version la plus récente : $youngestSvnVersion” >> $pathLog;
    51. if [ $numVersionLastBackup -gt $youngestSvnVersion ]; then
    52.         echo “[$(date “$dateLogFormat“)] La version la plus récente est la version sauvegardée, la sauvegarde n’est donc pas nécéssaire” >> $pathLog;
    53.         echo “[$(date “$dateLogFormat“)] Fin de la sauvegarde” >> $pathLog;
    54.         exit 0
    55. fi
    56. # Lancement effectif de la sauvegarde
    57. if (svnadmin dump -r$numVersionLastBackup:$youngestSvnVersion$backupIncremental $pathRepo 2>>$pathLog | bzip2 > “$pathBackup/$(date “$dateFileFormat“)_”$fileName“_”$typeBackup“_”$numVersionLastBackup“_to_”$youngestSvnVersion“.svndump.bz2”) ; then
    58.         echo “[$(date “$dateLogFormat“)] Mise à jour du numéro de version” >> $pathLog;
    59.         mv $pathNumVersion/$numVersionLastBackup $pathNumVersion/$(($youngestSvnVersion + 1));
    60. else
    61.         echo “[$(date “$dateLogFormat“)] Erreur lors de la sauvegarde” >> $pathLog;
    62.         echo “[$(date “$dateLogFormat“)] Fin de l’exécution – Sauvegarde non effectuée” >> $pathLog;
    63.         exit 1;
    64. fi
    65. echo “[$(date “$dateLogFormat“)] Fin de la sauvegarde” >> $pathLog;
    66. exit 0
  • 8 years ago and saved by 7 others
    1. #Parfois vous pouvez vous simplifier la vie, il vous suffit de taper un des motifs suivants (source : “man sh”) :
    2. !n                            #Rappelle la commande numéro “n”.
    3. !-n                           #Rappelle la commande exécutée il y a “n” commande(s).
    4. !!                             #Rappelle la dernière commande.
    5. !chaine                    #Rappelle la commande la plus récente commençant par “chaine”.
    6. !?chaine                  #Rappelle la commande la plus récente finissant par “chaine”.
    7. !?chaine?                 #Rappelle la commande la plus récente contenant “chaine”.
    8.                                #Ajoutez “:p” à la fin pour que la commande ne s’exécute pas.
    9. ^chaine1^chaine2^  #Répète la dernière commande en remplaçant chaine1 par chaine2.
    10. !#                            #Rappelle la plus ancienne commande de l’historique.
    11. commande !^           #Exécute “commande” avec le premier argument de la commande précédente.
    12. commande !:n         #Exécute “commande” avec l’argument numéro “n” de la commande précédente.
    13. commande !:x-y      #Exécute “commande” avec les arguments numéro “x” à “y” de la commande précédente.
    14. commande !$          #Exécute “commande” avec le dernier argument de la commande précédente.