Script update, upgrade et install

Bonjour à tous

J’utilise updatengine pour le déploiement sur Windows et cela fonctionne à merveille et je commence à m’interresser au déploiement sur Linux puisque le logiciel le permet.

Malheureusement leur forum n’est pas actif et comme il s’agit de simple script bash peut être que vous pourrez me donner un coup de main

j’ai fait plusieurs tests avant d’arriver à un résultat probant sur une simple installation de apache sur une debian jessie.

Le script est constitué d’une seule ligne:

#!/bin/bash    
debian_frontend=noninteractive PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:' apt-get install -yq apache2 &> /home/fred/updatengine_install.log

Maintenant, là où je rencontre un problème c’est pour l’apt-get update et apt-get upgrade

j’ai essayé avec:

#!/bin/bash
debian_frontend=noninteractive PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:' apt-get -yq update &> /home/fred/updatengine_update.log
debian_frontend=noninteractive PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:' apt-get -yq upgrade &> /home/fred/updatengine_upgrade.log

j’ai essayé plusieurs variantes de ce script donc avec ou sans le frontend, avec ou sans le path mais rien à faire, je n’ai aucune réaction du script alors que si je tape la ligne de commande à la mano dans le terminal, pas de soucis la commande réagit parfaitement et comme je m’y attend.

Les fichiers log restent totalement inexistants (non créé), et pas de trace dans /var/log/apt/history.log, c’est comme si tout était bloqué.

Un ctrl+c et je récupère la main dans le terminal sans soucis.

Par avance merci si vous avez des idées.

Salut,

T’as pas oublié de définir le shell cible par hasard au début de ton script??

Et mets en format “code” tes lignes de code :wink:

Pour le shell cible non il y a bien #!/bin/bash en entête du script, je ne l’ai pas mis ici car cela me semble couler de source :wink:

En format code c’est à dire?

Je vais éditer ton premier message pour être plus clair. En fait ce que je te demandais c’est de mettre tes lignes de code entre balises pour que ce soit plus lisible.

Sinon tu peux nous coller le code en entier pour voir?

ok j’ai compris

c’est corrigé

Oui voilà, bon tu as remis tout sur une ligne, c’est ton choix, mais saches qu’il est préférable de conserver la syntaxe de base “une commande = une ligne”, ne serait-ce que pour une question de lisibilité.

En fait ton script fonctionne très bien, le souci c’est que tu as redirigé la sortie de ta commande vers un fichier de log, et en fait la façon dont tu l’as fait coupe le retour direct dans le terminal et renvoie dans le fichier directement, d’où ton impression que la commande ne marche pas…

Par contre comme je ne suis pas un crack en programmation je ne sais pas par quoi il faut remplacer :

&> /home/fred/updatengine_update.log

par exemple, pour avoir à la fois le retour dans le terminal, et dans le fichier log… :confused:

EDIT : bon en fait voilà peut-être une solution, essaies d’écrire ça comme ça —>

commande 2>&1 | tee -a monfichierdelog

Bonjour

Je ferrais également un essai sans l’écriture du log pour voir ce que cela donne.

Je vais essayer ça Lundi et te tiens au courant

Merci

Bon ben j’ai passé la matinée à tourner le script dans tous les sens et je n’ai toujours de résultat positif

L’installation test de apache ne pose aucun problème, par contre le update et le upgrade ne fonctionne toujours pas :rage:

Je ne voit vraiment pas ou est le soucis

la partie client de updatengine est disponible ici: https://github.com/updatengine/updatengine-client

et voici la partie plus spécifiquement dédié à Linux: https://github.com/updatengine/updatengine-client/tree/master/LinuxDpkg