IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Mise à jour Minecraft : wget et conditions


Sujet :

Shell et commandes GNU

  1. #41
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    Ça ne fonctionne pas, il faut aussi les noms de fichiers car on ne met à jour QUE si les fichiers plugins existent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        destFic="$backup_source/plugins/${url##*/}" #<- c'est ici : on récupère le nom du fichier à la fin de l'URL
    ce n'est pas un code fonctionnel (je n'ai pas ta structure de fichiers pour tester), c'est plus une démonstration de comment faire pour éviter d'avoir un même code en double pour des arguments différents; tu dois l'adapter.

    Perso je préfère la syntaxe [] c'est plus chouette.
    mais c'est plus ambigu.

    EDIT:
    pourquoi ton script reçoit-il des arguments ? quels sont-ils ?
    cela suggère que tu inscris ce script dans cron avec des arguments différents... donc, plusieurs fois... c'est bizarre.
    alors, pourquoi ne pas lancer le script une seule fois et lui laisser faire les tests pour tous les arguments possibles ?
    tu vois ce que je veux dire ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  2. #42
    Membre habitué

    Inscrit en
    Février 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Février 2007
    Messages : 250
    Points : 162
    Points
    162
    Par défaut
    Non je ne vois pas ce que tu veux dire...

    En fait j'ai des serveurs Minecraft dans des répertoires différents : minecraft-bedrock \ Xolum ou Licafun et un serveur Minecraft dans un répertoire minecraft-java \ Zaluh
    De plus il faut aussi passer le nom du docker qui contient le serveur (et qui est mis à jour par la dernière ligne du script : watchtower-once).
    Et en plus, la sauvegarde se fait dans des répertoires différents...
    Voici le code encore repris. J'ai enlevé test, je préfère [] sauf si vraiment on me trouve un argument imparable.
    Dans ce code, je teste dans les logs si quelqu'un s'est connecté depuis la dernière sauvegarde et si personne ne s'est connecté je ne sauve rien.
    Si le répertoire logs n'existe pas alors je sauvegarde (cas des serveurs Bedrock, je ne peux pas donc pas savoir si quelqu'un s'est connecté.)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    #!/bin/bash
    backup_source="/home/feneck91/docker/$1/$2"
    backup_dest_up="/mnt/ntfs1/Backups/Minecraft/Worlds/$2"
    backup_dest="$backup_dest_up/$(date '+%Y-%m-%d_%H:%M:%S')"
    current_date="$(date '+%Y-%m-%d - %H:%M:%S')"
    playerlogged="xxxxx"
     
    if [ -d "$backup_source/logs" ]
    then
        playerlogged=$(cat "$backup_source/logs/latest.log" | grep "joined the game")
    fi
     
    # Stop docker
    docker stop "$3"
     
    # Ne copier que si un joueur s'est connecté sinon rien n'a changé
    if [ -n "$playerlogged" ]
    then
        if [ ! -d "$backup_dest_up" ]
        then
            mkdir -m 755 -p "$backup_dest_up"
        fi
        cp -Rfp "$backup_source" "$backup_dest"
    fi
     
    # Mettre à jour les plugins
     
    # Update floodgate-api.jar
    if [ -e "${backup_source}/plugins/floodgate-api.jar" ]
    then
        wget -N "https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/lastSuccessfulBuild/artifact/api/target/floodgate-api.jar" -O "${backup_source}/plugins/floodgate-api.jar"
    fi
     
    # Update Geyser-Spigot.jar
    if [ -e "${backup_source}/plugins/Geyser-Spigot.jar" ]
    then
        wget -N "https://ci.opencollab.dev//job/GeyserMC/job/Geyser/job/master/lastSuccessfulBuild/artifact/bootstrap/spigot/target/Geyser-Spigot.jar" -O "${backup_source}/plugins/Geyser-Spigot.jar"
    fi
     
    # Update worldedit-bukkitxxx.jar
    # 1 - Récupérer le fichier worldedit-bukkit-xxx sur le disque, fichier à mettre à jour
    wordeditfileold=$(find "$backup_source/plugins/" -maxdepth 1 -regextype posix-extended -regex '.*/worldedit-bukkit-[0-9\.]+\.jar$' | sed -n 's/.*\(worldedit-bukkit-.*\.jar\)/\1/p')
    if [ -n "$wordeditfileold" ]
    then
        # Le fichier wordedit existe, donc ce répertoire contient ce plugin, voir s'il faut le mettre à jour
        # 2 - récupérer le nom du fichier worldedit-bukkit-xxx dernière version pour voir s'il faut le mettre à jour
        read wordeditfilenew < <(wget -SqO /dev/null "https://dev.bukkit.org/projects/worldedit/files/latest" 2>&1 | grep -m1 -Po '^\s*Location.*/\K.*')
        if [ "${wordeditfileold}" != "${wordeditfilenew}" ];
        then
          # Mise à jour du nouveau fichier
          wget -N "https://dev.bukkit.org/projects/worldedit/files/${wordeditfileNew}"
          if [ -e "${backup_source}/plugins/${wordeditfileNew}" ]
          then
              echo "${current_date} - Mise à jour du fichier : ${wordeditfileNew}" >> "${backup_source}/plugins/update_info.txt"
              # Suppression de l'ancien fichier
              echo "${current_date} - Suppression du fichier : ${wordeditfileold}" >> "${backup_source}/plugins/update_info.txt"
              rm "${backup_source}/plugins/${wordeditfileold}"
          else
              echo "${current_date} - Echec lors de la mise à jour du fichier : ${wordeditfileNew}" >> "${backup_source}/plugins/update_info.txt"
          fi
        fi
    fi
     
    # Update worldguard-bukkit-xxx-dist.jar
    # 1 - Récupérer le fichier worldguard-bukkit-xxx-dist.jar sur le disque, fichier à mettre à jour
    wordguardfileold=$(find "$backup_source/plugins/" -maxdepth 1 -regextype posix-extended -regex '.*/worldguard-bukkit-[0-9\.]+-dist\.jar$' | sed -n 's/.*\(worldguard-bukkit-.*\.jar\)/\1/p')
    if [ -n "$wordguardfileold" ]
    then
        # Le fichier wordguard existe, donc ce répertoire contient ce plugin, voir s'il faut le mettre à jour
        # 2 - récupérer le nom du fichier worldguard-bukkit-xxx-dist.jar dernière version pour voir s'il faut le mettre à jour
        read wordguardfilenew < <(wget -SqO /dev/null "https://dev.bukkit.org/projects/worldguard/files/latest" 2>&1 | grep -m1 -Po '^\s*Location.*/\K.*')
        if [ "${wordguardfileold}" != "${wordguardfilenew}" ];
        then
          # Mise à jour du nouveau fichier
          wget -N "https://dev.bukkit.org/projects/worldguard/files/${wordguardfilenew}"
          if [ -e "${backup_source}/plugins/${wordguardfilenew}" ]
          then
              echo "${current_date} - Mise à jour du fichier : ${wordguardfilenew}" >> "${backup_source}/plugins/update_info.txt"
              # Suppression de l'ancien fichier
              echo "${current_date} - Suppression du fichier : ${wordguardfileold}" >> "${backup_source}/plugins/update_info.txt"
              rm "${backup_source}/plugins/${wordguardfileold}"
          else
              echo "${current_date} - Echec lors de la mise à jour du fichier : ${wordguardfilenew}" >> "${backup_source}/plugins/update_info.txt"
          fi
        fi
    fi
     
    docker start watchtower-once "$3"

  3. #43
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if grep -qs 'joined the game' "$backup_source/logs/latest.log"
    then
         test -d "$backup_dest_up" || mkdir -m 755 -p "$backup_dest_up"
        cp -Rfp "$backup_source" "$backup_dest"
    fi
    ça : wordguardfileold=$(find "$backup_source/plugins/" -maxdepth 1 -regextype posix-extended -regex '.*/worldguard-bukkit-[0-9\.]+-dist\.jar$' | sed -n 's/.*\(worldguard-bukkit-.*\.jar\)/\1/p'), je suis sûr qu'on peut faire ça en shell.
    le dossier de recherche est connu
    il n'y a pas à descendre dans les sous-répertoire
    et le sed est largement dipensable.

    les accolades ne servent toujours à rien, surtout s'il n'y a rien d'accolé.

    En fait j'ai des serveurs Minecraft dans des répertoires différents : minecraft-bedrock \ Xolum ou Licafun et un serveur Minecraft dans un répertoire minecraft-java \ Zaluh
    De plus il faut aussi passer le nom du docker qui contient le serveur (et qui est mis à jour par la dernière ligne du script : watchtower-once).
    voilà pourquoi tu ne vois ce que je veux dire. c'est normal. tout va bien.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #44
    Membre habitué

    Inscrit en
    Février 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Février 2007
    Messages : 250
    Points : 162
    Points
    162
    Par défaut
    Voici une correction, entre autre le -O oublié après le wget qui fait juste que ça ne fonctionne pas !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    #!/bin/bash
    backup_source="/home/feneck91/docker/$1/$2"
    backup_dest_up="/mnt/ntfs1/Backups/Minecraft/Worlds/$2"
    backup_dest="$backup_dest_up/$(date '+%Y-%m-%d_%H:%M:%S')"
    current_date="$(date '+%Y-%m-%d - %H:%M:%S')"
    playerlogged="xxxxx"
     
    if [ -d "$backup_source/logs" ]
    then
        playerlogged=$(cat "$backup_source/logs/latest.log" | grep "joined the game")
    fi
     
    # Stop docker
    docker stop "$3"
     
    # Ne copier que si un joueur s'est connecté sinon rien n'a changé
    if [ -n "$playerlogged" ]
    then
        if [ ! -d "$backup_dest_up" ]
        then
            mkdir -m 755 -p "$backup_dest_up"
        fi
        cp -Rfp "$backup_source" "$backup_dest"
    fi
     
    # Mettre à jour les plugins
     
    # Update floodgate-api.jar
    if [ -e "${backup_source}/plugins/floodgate-api.jar" ]
    then
        wget -N "https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/lastSuccessfulBuild/artifact/api/target/floodgate-api.jar" -O "${backup_source}/plugins/floodgate-api.jar"
    fi
     
    # Update Geyser-Spigot.jar
    if [ -e "${backup_source}/plugins/Geyser-Spigot.jar" ]
    then
        wget -N "https://ci.opencollab.dev//job/GeyserMC/job/Geyser/job/master/lastSuccessfulBuild/artifact/bootstrap/spigot/target/Geyser-Spigot.jar" -O "${backup_source}/plugins/Geyser-Spigot.jar"
    fi
     
    # Update worldedit-bukkitxxx.jar
    # 1 - Récupérer le fichier worldedit-bukkit-xxx sur le disque, fichier à mettre à jour
    wordeditfileold=$(find "$backup_source/plugins/" -maxdepth 1 -regextype posix-extended -regex '.*/worldedit-bukkit-[0-9\.]+\.jar$' | sed -n 's/.*\(worldedit-bukkit-.*\.jar\)/\1/p')
    if [ -n "$wordeditfileold" ]
    then
        # Le fichier wordedit existe, donc ce répertoire contient ce plugin, voir s'il faut le mettre à jour
        # 2 - récupérer le nom du fichier worldedit-bukkit-xxx dernière version pour voir s'il faut le mettre à jour
        read wordeditfilenew < <(wget -SqO /dev/null "https://dev.bukkit.org/projects/worldedit/files/latest" 2>&1 | grep -m1 -Po '^\s*Location.*/\K.*')
        if [ "$wordeditfileold" != "$wordeditfilenew" ];
        then
          # Mise à jour du nouveau fichier
          wget -N "https://dev.bukkit.org/projects/worldedit/files/$wordeditfilenew"-O "${backup_source}/plugins/$wordeditfilenew"
          if [ -e "$backup_source/plugins/$wordeditfilenew" ]
          then
              echo "$current_date - Mise à jour du fichier : $wordeditfilenew" >> "$backup_source/plugins/update_info.txt"
              # Suppression de l'ancien fichier
              echo "$current_date - Suppression du fichier : $wordeditfileold" >> "$backup_source/plugins/update_info.txt"
              rm "$backup_source/plugins/$wordeditfileold"
          else
              echo "$current_date - Echec lors de la mise à jour du fichier : $wordeditfilenew" >> "$backup_source/plugins/update_info.txt"
          fi
        fi
    fi
     
    # Update worldguard-bukkit-xxx-dist.jar
    # 1 - Récupérer le fichier worldguard-bukkit-xxx-dist.jar sur le disque, fichier à mettre à jour
    wordguardfileold=$(find "$backup_source/plugins/" -maxdepth 1 -regextype posix-extended -regex '.*/worldguard-bukkit-[0-9\.]+-dist\.jar$' | sed -n 's/.*\(worldguard-bukkit-.*\.jar\)/\1/p')
    if [ -n "$wordguardfileold" ]
    then
        # Le fichier wordguard existe, donc ce répertoire contient ce plugin, voir s'il faut le mettre à jour
        # 2 - récupérer le nom du fichier worldguard-bukkit-xxx-dist.jar dernière version pour voir s'il faut le mettre à jour
        read wordguardfilenew < <(wget -SqO /dev/null "https://dev.bukkit.org/projects/worldguard/files/latest" 2>&1 | grep -m1 -Po '^\s*Location.*/\K.*')
        if [ "$wordguardfileold" != "$wordguardfilenew" ];
        then
          # Mise à jour du nouveau fichier
          wget -N "https://dev.bukkit.org/projects/worldguard/files/$wordguardfilenew" -O "${backup_source}/plugins/$wordguardfilenew"
          if [ -e "$backup_source/plugins/$wordguardfilenew" ]
          then
              echo "$current_date - Mise à jour du fichier : $wordguardfilenew" >> "$backup_source/plugins/update_info.txt"
              # Suppression de l'ancien fichier
              echo "$current_date - Suppression du fichier : $wordguardfileold" >> "$backup_source/plugins/update_info.txt"
              rm "$backup_source/plugins/$wordguardfileold"
          else
              echo "$current_date - Echec lors de la mise à jour du fichier : $wordguardfilenew" >> "$backup_source/plugins/update_info.txt"
          fi
        fi
    fi
     
    docker start watchtower-once "$3"

  5. #45
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    si tu laisses cette ligne (playerlogged="xxxxx") et que le fichier de log n'existe pas la condition if [ -n "$playerlogged" ] sera vérifiée, alors que cela n'a pas pu l'être dans le log.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    read wordguardfilenew < <(wget -SqO /dev/null "https://dev.bukkit.org/projects/worldguard/files/latest" 2>&1 | grep -m1 -Po '^\s*Location.*/\K.*')
    ici aussi le read est devenu inutile.

    En fait j'ai des serveurs Minecraft dans des répertoires différents : minecraft-bedrock \ Xolum ou Licafun et un serveur Minecraft dans un répertoire minecraft-java \ Zaluh
    donc, comme je le disais, pour chacun, il y a une ligne dans cron, avec des arguments différents pour le même script. c'est ça ?
    alors, pourquoi ne pas écrire le script pour qu'il ne soit exécuté qu'une seule fois, en bouclant sur les différents arguments ?
    c'est faisable avec des tableaux, puisqu'à chaque $1 correspond un $2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ arg1=( a b c )
    $ arg2=( d e f )
    $ for i in ${!arg1[*]}; do echo "${arg1[i]} <=> ${arg2[i]}"; done
    a <=> d
    b <=> e
    c <=> f
    $
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #46
    Membre habitué

    Inscrit en
    Février 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Février 2007
    Messages : 250
    Points : 162
    Points
    162
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    si tu laisses cette ligne (playerlogged="xxxxx") et que le fichier de log n'existe pas la condition if [ -n "$playerlogged" ] sera vérifiée, alors que cela n'a pas pu l'être dans le log.
    Clairement c'est complètement con de ma part !

    Citation Envoyé par N_BaH Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    read wordguardfilenew < <(wget -SqO /dev/null "https://dev.bukkit.org/projects/worldguard/files/latest" 2>&1 | grep -m1 -Po '^\s*Location.*/\K.*')
    ici aussi le read est devenu inutile.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wordguardfilenew=wget -SqO /dev/null "https://dev.bukkit.org/projects/worldguard/files/latest" 2>&1 | grep -m1 -Po '^\s*Location.*/\K.*'
    Clairement, sans le read, la variable wordguardfilenew ne contient rien, je veux bien retirer le read mais ça ne fonctionne plus !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wordguardfilenew=<(wget -SqO /dev/null "https://dev.bukkit.org/projects/worldguard/files/latest" 2>&1 | grep -m1 -Po '^\s*Location.*/\K.*')
    Là, la variable contient "/dev/fd/63"

    Citation Envoyé par N_BaH Voir le message
    donc, comme je le disais, pour chacun, il y a une ligne dans cron, avec des arguments différents pour le même script. c'est ça ?
    alors, pourquoi ne pas écrire le script pour qu'il ne soit exécuté qu'une seule fois, en bouclant sur les différents arguments ?
    Parce que chaque tâche cron est lancée indépendamment, certains serveur qui ne sont plus utilisés ne sont plus mis à jour ni sauvegardés, d'autres sont mis en pause en ce moment.
    En fait ce script est fait pour un seul serveur et j'ai une tâche Cron par serveur, plus simple et flexible à gérer pour moi.

    Pour le moment donc, ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    #!/bin/bash
    backup_source="/home/feneck91/docker/$1/$2"
    backup_dest_up="/mnt/ntfs1/Backups/Minecraft/Worlds/$2"
    backup_dest="$backup_dest_up/$(date '+%Y-%m-%d_%H:%M:%S')"
    current_date="$(date '+%Y-%m-%d - %H:%M:%S')"
    playerlogged=""
     
    if [ -d "$backup_source/logs" ]
    then
        playerlogged=$(cat "$backup_source/logs/latest.log" | grep "joined the game")
    fi
     
    # Stop docker
    docker stop "$3"
     
    # Ne copier que si un joueur s'est connecté sinon rien n'a changé
    if [ -n "$playerlogged" ]
    then
        if [ ! -d "$backup_dest_up" ]
        then
            mkdir -m 755 -p "$backup_dest_up"
        fi
        cp -Rfp "$backup_source" "$backup_dest"
    fi
     
    # Mettre à jour les plugins
     
    # Update floodgate-api.jar
    if [ -e "${backup_source}/plugins/floodgate-api.jar" ]
    then
        wget -N "https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/lastSuccessfulBuild/artifact/api/target/floodgate-api.jar" -O "${backup_source}/plugins/floodgate-api.jar"
    fi
     
    # Update Geyser-Spigot.jar
    if [ -e "${backup_source}/plugins/Geyser-Spigot.jar" ]
    then
        wget -N "https://ci.opencollab.dev//job/GeyserMC/job/Geyser/job/master/lastSuccessfulBuild/artifact/bootstrap/spigot/target/Geyser-Spigot.jar" -O "${backup_source}/plugins/Geyser-Spigot.jar"
    fi
     
    # Update worldedit-bukkitxxx.jar
    # 1 - Récupérer le fichier worldedit-bukkit-xxx sur le disque, fichier à mettre à jour
    wordeditfileold=$(find "$backup_source/plugins/" -maxdepth 1 -regextype posix-extended -regex '.*/worldedit-bukkit-[0-9\.]+\.jar$' | sed -n 's/.*\(worldedit-bukkit-.*\.jar\)/\1/p')
    if [ -n "$wordeditfileold" ]
    then
        # Le fichier wordedit existe, donc ce répertoire contient ce plugin, voir s'il faut le mettre à jour
        # 2 - récupérer le nom du fichier worldedit-bukkit-xxx dernière version pour voir s'il faut le mettre à jour
        read wordeditfilenew < <(wget -SqO /dev/null "https://dev.bukkit.org/projects/worldedit/files/latest" 2>&1 | grep -m1 -Po '^\s*Location.*/\K.*')
        if [ "$wordeditfileold" != "$wordeditfilenew" ];
        then
          # Mise à jour du nouveau fichier
          wget -N "https://dev.bukkit.org/projects/worldedit/files/$wordeditfilenew"-O "${backup_source}/plugins/$wordeditfilenew"
          if [ -e "$backup_source/plugins/$wordeditfilenew" ]
          then
              echo "$current_date - Mise à jour du fichier : $wordeditfilenew" >> "$backup_source/plugins/update_info.txt"
              # Suppression de l'ancien fichier
              echo "$current_date - Suppression du fichier : $wordeditfileold" >> "$backup_source/plugins/update_info.txt"
              rm "$backup_source/plugins/$wordeditfileold"
          else
              echo "$current_date - Echec lors de la mise à jour du fichier : $wordeditfilenew" >> "$backup_source/plugins/update_info.txt"
          fi
        fi
    fi
     
    # Update worldguard-bukkit-xxx-dist.jar
    # 1 - Récupérer le fichier worldguard-bukkit-xxx-dist.jar sur le disque, fichier à mettre à jour
    wordguardfileold=$(find "$backup_source/plugins/" -maxdepth 1 -regextype posix-extended -regex '.*/worldguard-bukkit-[0-9\.]+-dist\.jar$' | sed -n 's/.*\(worldguard-bukkit-.*\.jar\)/\1/p')
    if [ -n "$wordguardfileold" ]
    then
        # Le fichier wordguard existe, donc ce répertoire contient ce plugin, voir s'il faut le mettre à jour
        # 2 - récupérer le nom du fichier worldguard-bukkit-xxx-dist.jar dernière version pour voir s'il faut le mettre à jour
        read wordguardfilenew < <(wget -SqO /dev/null "https://dev.bukkit.org/projects/worldguard/files/latest" 2>&1 | grep -m1 -Po '^\s*Location.*/\K.*')
        if [ "$wordguardfileold" != "$wordguardfilenew" ];
        then
          # Mise à jour du nouveau fichier
          wget -N "https://dev.bukkit.org/projects/worldguard/files/$wordguardfilenew" -O "${backup_source}/plugins/$wordguardfilenew"
          if [ -e "$backup_source/plugins/$wordguardfilenew" ]
          then
              echo "$current_date - Mise à jour du fichier : $wordguardfilenew" >> "$backup_source/plugins/update_info.txt"
              # Suppression de l'ancien fichier
              echo "$current_date - Suppression du fichier : $wordguardfileold" >> "$backup_source/plugins/update_info.txt"
              rm "$backup_source/plugins/$wordguardfileold"
          else
              echo "$current_date - Echec lors de la mise à jour du fichier : $wordguardfilenew" >> "$backup_source/plugins/update_info.txt"
          fi
        fi
    fi
     
    docker start watchtower-once "$3"

  7. #47
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wordguardfilenew=$(wget -SqO /dev/null "https://dev.bukkit.org/projects/worldguard/files/latest" 2>&1 | grep -m1 -Po '^\s*Location.*/\K.*')
    substitution de commande !
    comme pour wordeditfileold
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  8. #48
    Membre habitué

    Inscrit en
    Février 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Février 2007
    Messages : 250
    Points : 162
    Points
    162
    Par défaut
    Super !

    La dernière version qui doit t'aller (sauf le [] au lieu de test)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    #!/bin/bash
    backup_source="/home/feneck91/docker/$1/$2"
    backup_dest_up="/mnt/ntfs1/Backups/Minecraft/Worlds/$2"
    backup_dest="$backup_dest_up/$(date '+%Y-%m-%d_%H:%M:%S')"
    current_date="$(date '+%Y-%m-%d - %H:%M:%S')"
    playerlogged=""
     
    if [ -d "$backup_source/logs" ]
    then
        playerlogged=$(cat "$backup_source/logs/latest.log" | grep "joined the game")
    fi
     
    # Stop docker
    docker stop "$3"
     
    # Ne copier que si un joueur s'est connecté sinon rien n'a changé
    if [ -n "$playerlogged" ]
    then
        if [ ! -d "$backup_dest_up" ]
        then
            mkdir -m 755 -p "$backup_dest_up"
        fi
        cp -Rfp "$backup_source" "$backup_dest"
    fi
     
    # Mettre à jour les plugins
     
    # Update floodgate-api.jar
    if [ -e "${backup_source}/plugins/floodgate-api.jar" ]
    then
        wget -N "https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/lastSuccessfulBuild/artifact/api/target/floodgate-api.jar" -O "${backup_source}/plugins/floodgate-api.jar"
    fi
     
    # Update Geyser-Spigot.jar
    if [ -e "${backup_source}/plugins/Geyser-Spigot.jar" ]
    then
        wget -N "https://ci.opencollab.dev//job/GeyserMC/job/Geyser/job/master/lastSuccessfulBuild/artifact/bootstrap/spigot/target/Geyser-Spigot.jar" -O "${backup_source}/plugins/Geyser-Spigot.jar"
    fi
     
    # Update worldedit-bukkitxxx.jar
    # 1 - Récupérer le fichier worldedit-bukkit-xxx sur le disque, fichier à mettre à jour
    wordeditfileold=$(find "$backup_source/plugins/" -maxdepth 1 -regextype posix-extended -regex '.*/worldedit-bukkit-[0-9\.]+\.jar$' | sed -n 's/.*\(worldedit-bukkit-.*\.jar\)/\1/p')
    if [ -n "$wordeditfileold" ]
    then
        # Le fichier wordedit existe, donc ce répertoire contient ce plugin, voir s'il faut le mettre à jour
        # 2 - récupérer le nom du fichier worldedit-bukkit-xxx dernière version pour voir s'il faut le mettre à jour
        wordeditfilenew=$(wget -SqO /dev/null "https://dev.bukkit.org/projects/worldedit/files/latest" 2>&1 | grep -m1 -Po '^\s*Location.*/\K.*')
        if [ "$wordeditfileold" != "$wordeditfilenew" ];
        then
          # Mise à jour du nouveau fichier
          wget -N "https://dev.bukkit.org/projects/worldedit/files/$wordeditfilenew"-O "${backup_source}/plugins/$wordeditfilenew"
          if [ -e "$backup_source/plugins/$wordeditfilenew" ]
          then
              echo "$current_date - Mise à jour du fichier : $wordeditfilenew" >> "$backup_source/plugins/update_info.txt"
              # Suppression de l'ancien fichier
              echo "$current_date - Suppression du fichier : $wordeditfileold" >> "$backup_source/plugins/update_info.txt"
              rm "$backup_source/plugins/$wordeditfileold"
          else
              echo "$current_date - Echec lors de la mise à jour du fichier : $wordeditfilenew" >> "$backup_source/plugins/update_info.txt"
          fi
        fi
    fi
     
    # Update worldguard-bukkit-xxx-dist.jar
    # 1 - Récupérer le fichier worldguard-bukkit-xxx-dist.jar sur le disque, fichier à mettre à jour
    wordguardfileold=$(find "$backup_source/plugins/" -maxdepth 1 -regextype posix-extended -regex '.*/worldguard-bukkit-[0-9\.]+-dist\.jar$' | sed -n 's/.*\(worldguard-bukkit-.*\.jar\)/\1/p')
    if [ -n "$wordguardfileold" ]
    then
        # Le fichier wordguard existe, donc ce répertoire contient ce plugin, voir s'il faut le mettre à jour
        # 2 - récupérer le nom du fichier worldguard-bukkit-xxx-dist.jar dernière version pour voir s'il faut le mettre à jour
        wordguardfilenew=$(wget -SqO /dev/null "https://dev.bukkit.org/projects/worldguard/files/latest" 2>&1 | grep -m1 -Po '^\s*Location.*/\K.*')
        if [ "$wordguardfileold" != "$wordguardfilenew" ];
        then
          # Mise à jour du nouveau fichier
          wget -N "https://dev.bukkit.org/projects/worldguard/files/$wordguardfilenew" -O "${backup_source}/plugins/$wordguardfilenew"
          if [ -e "$backup_source/plugins/$wordguardfilenew" ]
          then
              echo "$current_date - Mise à jour du fichier : $wordguardfilenew" >> "$backup_source/plugins/update_info.txt"
              # Suppression de l'ancien fichier
              echo "$current_date - Suppression du fichier : $wordguardfileold" >> "$backup_source/plugins/update_info.txt"
              rm "$backup_source/plugins/$wordguardfileold"
          else
              echo "$current_date - Echec lors de la mise à jour du fichier : $wordguardfilenew" >> "$backup_source/plugins/update_info.txt"
          fi
        fi
    fi
     
    docker start watchtower-once "$3"

  9. #49
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/bash
     
    printf -v dateJour '%(%F)T'
    printf -v dateHeure '%(%T)T'
    backup_dest="$backup_dest_up/${dateJour}_$dateHeure" 
    current_date=$dateJour-$dateHeure"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    playerlogged=$(grep "joined the game" "$backup_source/logs/latest.log")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wordeditfileold=$(find ...
    je ne suis toujours pas convaincu de l'utilité de ce find. : tu connais le chemin, tu connais le format du nom du fichier; ça pourrait très bien être fait en globbing plutôt qu'en regex.
    pareil pour wordguardfileold.

    peut-être utiliser d'autres variables pour ne pas avoir tous ces longs chemins en multiples exemplaires; ça nuit un peu à la lisibilité...
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  10. #50
    Membre habitué

    Inscrit en
    Février 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Février 2007
    Messages : 250
    Points : 162
    Points
    162
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    wordeditfileold=$(find ... je ne suis toujours pas convaincu de l'utilité de ce find. : tu connais le chemin, tu connais le format du nom du fichier; ça pourrait très bien être fait en globbing plutôt qu'en regex.
    Pourquoi pas ne pas utiliser le find qui en plus est limité au répertoire courant ?
    C'est c'est quoi le globbing ? C'est le truc avec $(ma commande) ?

    D'ailleurs, en me relisant je trouve que ce n'est pas très heureux mon nommage : mettre des ':' dans les noms de fichiers va m'empêcher de les copier sur des supports NTFS ou FAT...
    Pas très heureux comme choix.

  11. #51
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    Citation Envoyé par Feneck91 Voir le message
    Pourquoi pas ne pas utiliser le find qui en plus est limité au répertoire courant ?
    parce que tu connais le chemin, tu connais le format du nom du fichier.

    C'est le truc avec $(ma commande) ?
    non.

    C'est c'est quoi le globbing ?
    il s'agit du Développement des chemins du shell.
    c'est moins précis que les regex, mais c'est interne au shell.
    au lieu de worldguard-bukkit-[0-9\.]+-dist\.jar,
    on aura
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "$backup_source/plugins/"worldguard-bukkit-[0-9]*-dist.jar
    soit :
    le chemin
    worldguard-bukkit-
    un chiffre
    d'autres caractères, ou rien
    -dist.jar

    et même le sed est inutile.
    puisque tu veux garder uniquement le nom (c'est-à-dire la partie après le dernier slash) :
    Code 100% BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    shopt -s nullglob #pour le développement de chemin ne se fasse que s'il existe un fichier ayant un nom correspondant au format, sinon rien ne sera retourné (la variable sera vide).
    wordguardfileold="$backup_source/plugins/"worldguard-bukkit-[0-9]*-dist.jar
    wordguardfileold="${wordguardfileold##*/}"
    comme les fichiers temporaires, les commandes externes ralentissent énormément un script.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  12. #52
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 098
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 098
    Points : 4 442
    Points
    4 442
    Par défaut
    Si redémarrer le conteneur docker est important (même en cas d'erreur ???)

    Au lieu de placer la commande à la fin du script, il est plus prudent de la déclancher à la sortie du script (même en cas d'erreur)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    docker stop "$3"
    quitter() {
        docker start watchtower-once "$3"
    }
    trap quitter EXIT
    # A partir de cette ligne après "trap", la fonction quitter est toujours executée à la sortie
     
    # maj qui peut provoquer une erreur
    ...
    $moi= ( !== ) ? : ;

  13. #53
    Membre habitué

    Inscrit en
    Février 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Février 2007
    Messages : 250
    Points : 162
    Points
    162
    Par défaut
    Bon, plein de trucs ont changés ...

    Par contre la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wget -SqO /dev/null "https://dev.bukkit.org/projects/worldedit/files/latest" 2>&1 | grep -m1 -Po '^\s*Location.*/\K.*'
    Me retourne : worldedit-bukkit-7.2.12.jar?api-key=267C6CA3

    C'est quoi cette api-key ?

  14. #54
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ wget -SqO /dev/null "https://dev.bukkit.org/projects/worldedit/files/latest" 2>&1 | sed -n '/Location/{s/[^:]*:\s.*\/\([^?]*\).*/\1/p;q}'
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  15. #55
    Membre habitué

    Inscrit en
    Février 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Février 2007
    Messages : 250
    Points : 162
    Points
    162
    Par défaut
    Je n'avais pas fait attention, il y a en effet deux urls. J'avais pensé à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wget -SqO /dev/null "https://dev.bukkit.org/projects/worldedit/files/latest" 2>&1 | grep -m1 -Po '^\s*Location.*/\K.*\.jar'
    Perso je m'arrête au .jar et toi tu prends la dernière ULR, c'est ça ?

    Merci pour ta réponse si rapide.

  16. #56
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    ça marche aussi.

    non, je prends la première.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  17. #57
    Membre habitué

    Inscrit en
    Février 2007
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Février 2007
    Messages : 250
    Points : 162
    Points
    162
    Par défaut
    Bon, ça merde parce que ce que je calcul pour l'url n'est pas bon, il faut prendre l'url complète.
    Voici donc la dernière version du script (si ça peut aider) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    #!/bin/bash
    backup_source="/home/feneck91/docker/$1/$2"
    backup_dest_up="/mnt/ntfs1/Backups/Minecraft/Worlds/$2"
    backup_dest="$backup_dest_up/$(date '+%Y-%m-%d_%H:%M:%S')"
    current_date="$(date '+%Y-%m-%d - %H:%M:%S')"
    playerlogged=""
     
    if [ -d "$backup_source/logs" ]
    then
        playerlogged=$(cat "$backup_source/logs/latest.log" | grep "joined the game")
    fi
     
    # Stop docker
    docker stop "$3"
     
    # Ne copier que si un joueur s'est connecté sinon rien n'a changé
    if [ -n "$playerlogged" ]
    then
        if [ ! -d "$backup_dest_up" ]
        then
            mkdir -m 755 -p "$backup_dest_up"
        fi
        cp -Rfp "$backup_source" "$backup_dest"
    fi
     
    # Mettre à jour les plugins
     
    # Update floodgate-spigot.jar
    if [ -e "${backup_source}/plugins/floodgate-spigot.jar" ]
    then
        wget -N "https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/lastSuccessfulBuild/artifact/spigot/build/libs/floodgate-spigot.jar
    https://ci.opencollab.dev/job/GeyserMC/job/Floodgate/job/master/lastSuccessfulBuild/artifact/api/target/floodgate-api.jar" -O "${backup_source}/plugins/floodgate-api.jar"
    fi
     
    # Update Geyser-Spigot.jar
    if [ -e "${backup_source}/plugins/Geyser-Spigot.jar" ]
    then
        wget -N "https://ci.opencollab.dev//job/GeyserMC/job/Geyser/job/master/lastSuccessfulBuild/artifact/bootstrap/spigot/build/libs/Geyser-Spigot.jar" -O "${backup_source}/plugins/Geyser-Spigot.jar"
    fi
     
    # Update worldedit-bukkitxxx.jar
    # 1 - Récupérer le fichier worldedit-bukkit-xxx sur le disque, fichier à mettre à jour
    wordeditfileold=$(find "$backup_source/plugins/" -maxdepth 1 -regextype posix-extended -regex '.*/worldedit-bukkit-[0-9\.]+\.jar$' | sed -n 's/.*\(worldedit-bukkit-.*\.jar\)/\1/p')
    if [ -n "$wordeditfileold" ]
    then
        # Le fichier wordedit existe, donc ce répertoire contient ce plugin, voir s'il faut le mettre à jour
        # 2 - récupérer le nom du fichier worldedit-bukkit-xxx dernière version pour voir s'il faut le mettre à jour
        wordeditfilenew=$(wget -SqO /dev/null "https://dev.bukkit.org/projects/worldedit/files/latest" 2>&1 | grep -m1 -Po '^\s*Location.*/\K.*\.jar')
        wordeditfilenewurl=$(wget -SqO /dev/null "https://dev.bukkit.org/projects/worldedit/files/latest" 2>&1 | grep -m1 -Po '^\s*Location: *\K.*\.jar')
        if [ "$wordeditfileold" != "$wordeditfilenew" ];
        then
          # Mise à jour du nouveau fichier
          echo "$current_date - Téléchargement du fichier : $wordeditfilenew" >> "$backup_source/plugins/update_info.txt"
          wget -N "$wordeditfilenewurl" -O "${backup_source}/plugins/$wordeditfilenew"
          if [ -e "$backup_source/plugins/$wordeditfilenew" ]
          then
              echo "$current_date - Mise à jour du fichier : $wordeditfilenew" >> "$backup_source/plugins/update_info.txt"
              # Suppression de l'ancien fichier
              echo "$current_date - Suppression du fichier : $wordeditfileold" >> "$backup_source/plugins/update_info.txt"
              rm "$backup_source/plugins/$wordeditfileold"
          else
              echo "$current_date - Echec lors de la mise à jour du fichier : $wordeditfilenew" >> "$backup_source/plugins/update_info.txt"
          fi
        fi
    fi
     
    # Update worldguard-bukkit-xxx-dist.jar
    # 1 - Récupérer le fichier worldguard-bukkit-xxx-dist.jar sur le disque, fichier à mettre à jour
    wordguardfileold=$(find "$backup_source/plugins/" -maxdepth 1 -regextype posix-extended -regex '.*/worldguard-bukkit-[0-9\.]+-dist\.jar$' | sed -n 's/.*\(worldguard-bukkit-.*\.jar\)/\1/p')
    if [ -n "$wordguardfileold" ]
    then
        # Le fichier wordguard existe, donc ce répertoire contient ce plugin, voir s'il faut le mettre à jour
        # 2 - récupérer le nom du fichier worldguard-bukkit-xxx-dist.jar dernière version pour voir s'il faut le mettre à jour
        wordguardfilenew=$(wget -SqO /dev/null "https://dev.bukkit.org/projects/worldguard/files/latest" 2>&1 | grep -m1 -Po '^\s*Location.*/\K.*\.jar')
        wordguardfilenewurl=$(wget -SqO /dev/null "https://dev.bukkit.org/projects/worldguard/files/latest" 2>&1 | grep -m1 -Po '^\s*Location: *\K.*\.jar')
        if [ "$wordguardfileold" != "$wordguardfilenew" ];
        then
          # Mise à jour du nouveau fichier
          echo "$current_date - Téléchargement du fichier : $wordguardfilenew" >> "$backup_source/plugins/update_info.txt"
          wget -N "$wordguardfilenewurl" -O "${backup_source}/plugins/$wordguardfilenew"
          if [ -e "$backup_source/plugins/$wordguardfilenew" ]
          then
              echo "$current_date - Mise à jour du fichier : $wordguardfilenew" >> "$backup_source/plugins/update_info.txt"
              # Suppression de l'ancien fichier
              echo "$current_date - Suppression du fichier : $wordguardfileold" >> "$backup_source/plugins/update_info.txt"
              rm "$backup_source/plugins/$wordguardfileold"
          else
              echo "$current_date - Echec lors de la mise à jour du fichier : $wordguardfilenew" >> "$backup_source/plugins/update_info.txt"
          fi
        fi
    fi
     
    docker start watchtower-once "$3"

  18. #58
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    ah!? j'avais édité mon message pensant que tu ne voulais que le nom du fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wget -SqO /dev/null "https://dev.bukkit.org/projects/worldedit/files/latest" 2>&1 | sed -n '/Location/{s/[^:]*:\s\([^?]*\).*/\1/p;q}'
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Mise-à-jour avec date sous condition
    Par fulgurr dans le forum SAS Base
    Réponses: 4
    Dernier message: 03/05/2016, 10h15
  2. Mise à jour de champ sous condition
    Par aiss57 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/07/2009, 21h57
  3. Mise à jour de champ sous conditions
    Par aiss57 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/06/2009, 15h05
  4. ajout et mise à jour conditionés avec T-SQL
    Par monsurf dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 05/05/2006, 15h59
  5. Mise à jour dans un formulaire avec condition
    Par Bourni dans le forum Access
    Réponses: 4
    Dernier message: 06/03/2006, 22h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo