Création d'un cron

Création d'un cron - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 07-02-2017 à 21:42:09    

Bonsoir les fans de Linux,
 
Je compile moi-même les sources de Mesa à partir de son arbre Git dans un chroot 64-bits et 32-bits sur ma Debian.
Actuellement, je chroot, fais les MAJ de Debian/dépôt Git, recompile manuellement.
 
Mais voilà, j'aimerais faire cela via un Cron pour que tout cela soit fait à une certaine heure de la soirée. J'ai donc crée ce fichier "Mesa_Git_Cron" qui contient ceci :  

Citation :

#!/bin/sh
 
INSTALLFOLDER=/media/VM_System/Debian32
 
mount -t proc none $INSTALLFOLDER/proc
mount -o bind /dev $INSTALLFOLDER/dev
mount -o bind /tmp $INSTALLFOLDER/tmp
 
chroot $INSTALLFOLDER  
 
##Mise à Jour du Système
apt update && apt dist-upgrade -y

##Passage en simple utilisateur

su odelpasso
 
##Mise à jour du dépot Git de Mesa
cd /home/odelpasso/mesa-git  
git pull origin
 
##Supprimer les anciennes données
cd Build32 && rm -rf *
 
##Recompilation de Mesa
../autogen.sh CC="gcc -m32" CXX="g++ -m32" --build=i386-pc-linux-gnu --host=i386-pc-linux-gnu --enable-dri --enable-dri3 --without-dri-drivers --with-vulkan-drivers=radeon --with-gallium-drivers=radeonsi --enable-osmesa --enable-glx-tls --enable-shared-glapi --enable-texture-float --disable-xvmc --disable-omx --enable-xa --with-egl-platforms=drm,x11 --enable-gallium-llvm --enable-driglx-direct --enable-vdpau --enable-gles1 --enable-gles2 --enable-va
 
make -j8


 
Mais avant de créer réellement ce fameux Cron, j'ai lancé ce script manuellement en root dans une console. Le montage des partitions se fait correctement et l'entrée dans le chroot également mais tout s'arrête là.
Le passage à l'étape suivante (Mise à Jour du Système) ne s'effectue pas et impossible de comprendre pourquoi.
 
Si quelqu'un à une petite idée pour résoudre ce petit problème.
 
Merci

Reply

Marsh Posté le 07-02-2017 à 21:42:09   

Reply

Marsh Posté le 07-02-2017 à 21:43:46    

chroot /mondossier /bin/monshell


---------------
-~- Libérez Datoune ! -~- Camarade, toi aussi rejoins le FLD pour que la flamme de la Révolution ne s'éteigne pas ! -~- A VENDRE
Reply

Marsh Posté le 07-02-2017 à 21:48:25    

mirtouf a écrit :

chroot /mondossier /bin/monshell


 
J'ai beau avoir fait ce que tu m'as dit "chroot $INSTALLFOLDER /bin/bash", j'ai toujours ce même soucis car il ne se passe rien. "Apt Update" ne s'affiche pas à l'écran.

Reply

Marsh Posté le 07-02-2017 à 22:10:00    

J'enlèverai mount -o bind /tmp $INSTALLFOLDER/tmp
J'ajouterai mount --bind /run  $INSTALLFOLDER/run
mount -t proc /proc $INSTALLFOLDER/proc (je ne sais pas si cela vaut le coup de corriger)


---------------
-~- Libérez Datoune ! -~- Camarade, toi aussi rejoins le FLD pour que la flamme de la Révolution ne s'éteigne pas ! -~- A VENDRE
Reply

Marsh Posté le 09-02-2017 à 00:03:01    

ca me semble normal.
 
la commande "chroot" lance un nouveau shell dans dans ton $INSTALLFOLDER. donc ton script s'arrête tant que tu n'as pas quitté le shell chrooté. si tu tappes exit, tu as normalement les apt qui se lancent non ? sur ton environnement standard.
 
ton "su odelpasso" posera le même comportement ... nouveau shell, tes "git, autogen make" etc ne seront pas lancés dans ce shell user mais en root en suivant...
 
ces commandes tappées à la main ne peuvent s'orchester comme papa dans maman si facilement dans un script.
 
je vois plutot 2 scripts:
 
* le launcher en cron :

Code :
  1. #!/bin/sh
  2. INSTALLFOLDER=/media/VM_System/Debian32
  3. mount -t proc none $INSTALLFOLDER/proc
  4. mount -o bind /dev $INSTALLFOLDER/dev
  5. mount -o bind /tmp $INSTALLFOLDER/tmp
  6. ##Mise à Jour du Système
  7. chroot $INSTALLFOLDER  apt-get update
  8. chroot $INSTALLFOLDER  apt dist-upgrade -y
  9. # compile en mode user dans le chroot
  10. chroot $INSTALLFOLDER sudo -u odelpasso /home/odelpasso/compile.sh
  11. #todo : umount des $INSTALLDIR/{proc,dev,tmp}


 
 
* script userland  /home/odelpasso/compile.sh
 

Code :
  1. #!/bin/sh
  2. ##Mise à jour du dépot Git de Mesa
  3. cd /home/odelpasso/mesa-git 
  4. git pull origin
  5. ##Supprimer les anciennes données
  6. cd Build32 && rm -rf *
  7. ##Recompilation de Mesa
  8. ../autogen.sh CC="gcc -m32" CXX="g++ -m32" --build=i386-pc-linux-gnu --host=i386-pc-linux-gnu --enable-dri --enable-dri3 --without-dri-drivers --with-vulkan-drivers=radeon --with-gallium-drivers=radeonsi --enable-osmesa --enable-glx-tls --enable-shared-glapi --enable-texture-float --disable-xvmc --disable-omx --enable-xa --with-egl-platforms=drm,x11 --enable-gallium-llvm --enable-driglx-direct --enable-vdpau --enable-gles1 --enable-gles2 --enable-va
  9. make -j8



---------------
I'm too old for this shit.
Reply

Marsh Posté le 22-02-2017 à 22:01:42    

merci pour ton retour ... c'est pas la première fois que tu demandes de l'aide, que quelqu'un "se casse le cul" à te répondre et tu fais le mort ...


---------------
I'm too old for this shit.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed