sox posteets tagged bash  [ Profile ]

Sort by: Date / Title /

  1. 8 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.  
    3. # Vous pouvez éditer ces variables selon vos besoins
    4. SVN_ROOT="/srv/unit1/svn"
    5. SVN_TMP_PATH="/tmp/svn"
    6. $SVN_USER="svn"
    7. $SVN_GROUP="svn"
    8.  
    9. # Ce script doit être executé avec les droits de superutilisateur
    10. test -w /root;
    11. if [ ! "$?" -eq "0" ]; then
    12.         echo "Vous devez executer ce script en tant que superutilisateur."
    13.         exit 0
    14. fi
    15.  
    16. echo "#######################################"
    17. echo "Création d'un nouveau projet Subversion"
    18. echo "#######################################"
    19. echo ""
    20. echo "Tapez le nom du nouveau projet :"
    21. read PROJECT_NAME
    22.  
    23. if [ -z "$PROJECT_NAME" ]; then
    24.         echo "$PROJECT_NAME n'est pas un nom de projet valide.";
    25.         exit 0 
    26. fi
    27.  
    28. echo "Tapez maintenant le chemin du répertoire source :"
    29. echo "(Note: les répertoires trunk, branches et tags seront créés automatiquement)"
    30. read PROJECT_SOURCE_PATH
    31.  
    32. if [ -z "$PROJECT_SOURCE_PATH" -o ! -d $PROJECT_SOURCE_PATH ]; then
    33.         echo "$PROJECT_SOURCE_PATH n'est pas un répertoire valide.";
    34.         exit 0
    35. fi
    36.  
    37. echo "Création du projet $PROJECT_NAME depuis $PROJECT_SOURCE_PATH..."
    38.  
    39. # Si le répertoire $SVN_ROOT n'existe pas, on le crée
    40. if [ ! -d $SVN_ROOT ]; then
    41.         mkdir $SVN_ROOT
    42. fi
    43.  
    44. # Si le répertoire $SVN_TMP_PATH n'existe pas, on le crée
    45. if [ ! -d $SVN_TMP_PATH ]; then
    46.         mkdir $SVN_TMP_PATH
    47. fi     
    48.  
    49. # Création du répertoire du dépôt
    50. mkdir $SVN_ROOT/$PROJECT_NAME
    51.  
    52. # Création d'un répertoire temporaire de stockage avant import
    53. mkdir $SVN_TMP_PATH/$PROJECT_NAME
    54. mkdir $SVN_TMP_PATH/$PROJECT_NAME/branches
    55. mkdir $SVN_TMP_PATH/$PROJECT_NAME/tags
    56. mkdir $SVN_TMP_PATH/$PROJECT_NAME/trunk
    57.  
    58. # Copie des fichiers originaux dans le répertoire temporaire
    59. cp -R $PROJECT_SOURCE_PATH/* $SVN_TMP_PATH/$PROJECT_NAME/trunk/
    60.  
    61. # Création du dépôt et import depuis le répertoire créé
    62. svnadmin create $SVN_ROOT/$PROJECT_NAME
    63. svn import $SVN_TMP_PATH/$PROJECT_NAME file://$SVN_ROOT/$PROJECT_NAME -m "Initial import"
    64.  
    65. # Attribution des permissions à Apache sur le repertoire du dépot
    66. chown -R $SVN_USER:$SVN_GROUP $SVN_ROOT/$PROJECT_NAME
    67.  
    68. # Suppression du répertoire temporaire
    69. rm -rf $SVN_TMP_PATH/$PROJECT_NAME     
    70.  
    71. # Done !
    72. echo ""
    73. echo "Projet subversion $PROJECT_NAME créé avec succès dans $SVN_ROOT/$PROJECT_NAME !"
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/2032"></script>
  2. 10 years ago
    Il faut bien entendu que la version de gcc demandée soit installée.
    1. export CC=/usr/bin/gcc-4.1
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/1355"></script>
  3. 10 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]
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/794"></script>
  4. sponsorised links
  5. 10 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.  
    21. # Vérifications
    22. # Vérification de l'existence des dossiers de travail
    23. if [ ! -d $pathBackup ]; then
    24.         echo "Dossier $pathBackup inexistant";
    25.         exit 1;
    26. fi
    27.  
    28. echo "[$(date "$dateLogFormat")] Début de la sauvegarde" >> $pathLog;
    29.  
    30. # Création du dossier de la version si il n'existe pas
    31. if [ ! -d $pathNumVersion ]; then
    32.         mkdir $pathNumVersion;
    33. fi
    34.  
    35. numVersionLastBackup=$(ls $pathNumVersion);
    36. if [ "$numVersionLastBackup" = "" ]; then
    37.         touch "$pathNumVersion/1";
    38.         numVersionLastBackup=1;
    39. fi
    40.  
    41. if [ $numVersionLastBackup -gt 1 ]; then
    42.         backupIncremental=" --incremental";
    43.         typeBackup="incr";
    44. else
    45.         typeBackup="full";
    46. fi
    47.  
    48. # Vérification de l'existance du dépôt
    49. if  ! (svnlook info $pathRepo 2>>$pathLog 1>"/dev/null") ; then
    50.         echo "[$(date "$dateLogFormat")] ERREUR : Repository $pathRepo inexistant" >> $pathLog;
    51.         echo "[$(date "$dateLogFormat")] Fin de l'exécution - Sauvegarde non effectuée" >> $pathLog;
    52.         exit 1;
    53. fi
    54.  
    55. # Récupération de la dernière version présente dans le dépôt
    56. youngestSvnVersion=$(svnlook youngest $pathRepo);
    57. echo "[$(date "$dateLogFormat")] Version la plus récente : $youngestSvnVersion" >> $pathLog;
    58.  
    59. if [ $numVersionLastBackup -gt $youngestSvnVersion ]; then
    60.         echo "[$(date "$dateLogFormat")] La version la plus récente est la version sauvegardée, la sauvegarde n'est donc pas nécéssaire" >> $pathLog;
    61.         echo "[$(date "$dateLogFormat")] Fin de la sauvegarde" >> $pathLog;
    62.         exit 0
    63. fi
    64.  
    65. # Lancement effectif de la sauvegarde
    66. if (svnadmin dump -r$numVersionLastBackup:$youngestSvnVersion$backupIncremental $pathRepo 2>>$pathLog | bzip2 > "$pathBackup/$(date "$dateFileFormat")_"$fileName"_"$typeBackup"_"$numVersionLastBackup"_to_"$youngestSvnVersion".svndump.bz2") ; then
    67.         echo "[$(date "$dateLogFormat")] Mise à jour du numéro de version" >> $pathLog;
    68.         mv $pathNumVersion/$numVersionLastBackup $pathNumVersion/$(($youngestSvnVersion + 1));
    69. else
    70.         echo "[$(date "$dateLogFormat")] Erreur lors de la sauvegarde" >> $pathLog;
    71.         echo "[$(date "$dateLogFormat")] Fin de l'exécution - Sauvegarde non effectuée" >> $pathLog;
    72.         exit 1;
    73. fi
    74.  
    75. echo "[$(date "$dateLogFormat")] Fin de la sauvegarde" >> $pathLog;
    76. exit 0
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/676"></script>
  6. 11 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.
    Paste this in your website: <script type="text/javascript" src="http://www.posteet.com/embed/320"></script>

First / Previous / Next / Last / Page 1 of 1 (5 posteets)