Shell-script commenté

Modifier les paramètres en rouge pour adapter cet exemple

Supprimer le caractère # pour activer la commande qui commence par « #PBS »


#!/bin/bash
#                        fichier script shell

#                        une ligne commençant par #PBS est une commande PBS
#                        une ligne commençant par # est un commentaire

#                        le shell utilisé par PBS pour interpréter 
#                        le fichier est bash
#PBS -S /bin/bash

#                        nom du job ici JobName (facultatif)
#                        15 caractères maximun
#PBS -N JobName          

#                        par défaut, les flux "output" et "error" sont envoyés
#                        dans des fichiers situés dans le répertoire de 
#                        travail et dont les noms sont :
#                          job_name.osequence_number  <-  output 
#                          job_name.esequence_number  <-  error
#                        où job_name est le nom du job et sequence_number et 
#                        le numéro du job qui est assigné lors de la soumission
#                        On peut changer les noms par défaut en utilisant les 
#                        commandes suivantes :
##PBS -o stdout_file
##PBS -e stderr_file

#                        Pour éviter d'avoir trop de fichiers, on peut 
#                        regrouper les flux "output et "error" dans un seul 
#                        fichier :
#PBS -j oe

#                        PBS peut envoyer des informations sur l'état du job 
#                        par email :
#                        un simple caractère "n" (pas de mail)
##PBS -m n
#                        un ou plusieurs caractères :
#                        "a" envoi email si le job est avorté,
#                        "b" envoi email lorsque  le job débute
#                        "e" envoi email lorsque le job se termine
##PBS -m abe
##PBS -m ae

#                        l'adresse email est spécifiée par la commande
##PBS -M cros@iup.univ-evry.fr

#                        ressources demandées : 
#                        1 noeud                : nodes=1
#                        1 processeur par noeud : ppn=1
#PBS -l nodes=1:ppn=1

#                        PBS_O_WORKDIR correspond au répertoire où a été lancé 
#                        le script, affichage pour vérification :
echo $PBS_O_WORKDIR

#                        permet de connaître le nom ou numéro du noeud sur 
#                        lequel va s'effectuer le calcul
nodes=`cat $PBS_NODEFILE`

#                        création d'un répertoire temporaire (nommé «dossier» 
#                        par exemple) auquel on adosse l'ID ($PBS_JOBID) du job afin
#                        de rendre unique ce répertoire. Ce répertoire est créé
#                        sur le noeud de calcul en deux étapes :
#                        1- la variable WD va pointer sur le répertoire où 
#                           va s'effectuer le calcul sur le noeud
export WD=/scratch/dossier$PBS_JOBID

#                        2- création du répertoire temporaire sur le noeud 
#                           de calcul 
mkdir $WD

#                        copie des fichiers de données dans le répertoire de 
#                        calcul
#                        rmq : rcp -r permet de copier un répertoire 
rcp $PBS_O_WORKDIR/test.dat $nodes:$WD

#                        copie de l'exécutable dans le répertoire de calcul
rcp $PBS_O_WORKDIR/test_seq $nodes:$WD

#                        déplacement dans le répertoire de calcul
cd $WD

#                        lancement du calcul (commande «date» pour connaître 
#                        l'heure de début et de fin du calcul
date
./test_seq
date
#                        la même chose mais avec redirection des impressions
#                        dans un fichier
date
./test_seq &> $WD/test.out2
date
#                        récupération du fichier contenant les redirections 
#                        d'impression
rcp $WD/test.out2 master0:$PBS_O_WORKDIR

#                        récupération du résultat dans un répertoire sur 
#                        le frontal
rcp $WD/test.out master0:$PBS_O_WORKDIR

#                        le résultat peut être copié sur le serveur de fichiers
rcp $WD/test.out master0:/data/cros

#                        effacement du répertoire temporaire (dossier) sur le 
#                        noeud de calcul
/bin/rm -r $WD