- Timestamp:
- 03/07/12 10:39:55 (12 years ago)
- Location:
- branches/libIGCM_MPI_OpenMP
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/libIGCM_MPI_OpenMP
-
Property
svn:mergeinfo
set to
False
/trunk/libIGCM merged eligible
-
Property
svn:mergeinfo
set to
False
-
branches/libIGCM_MPI_OpenMP/libIGCM_sys/libIGCM_sys_mercurex8.ksh
r458 r571 83 83 typeset -r RSYNC_opt="-va" 84 84 # ie storage filesystem 85 typeset -r RHOST=mercure85 typeset -r STOREHOST=${MASTER} 86 86 87 87 #==================================================== … … 133 133 #==================================================== 134 134 #- IN 135 typeset -r R_IN=${R_IN:=/ dmnfs/cont003/p86ipsl/IGCM}135 typeset -r R_IN=${R_IN:=/ccc/work/cont003/dsm/p86ipsl/IGCM} 136 136 typeset -r R_IN_ECMWF=${R_IN_ECMWF:=/dmnfs/cont003/p24data} 137 137 138 138 #==================================================== 139 #- OUT139 #- R_OUT 140 140 typeset -r R_OUT=${ARCHIVE}/IGCM_OUT 141 142 #==================================================== 143 #- R_BUF (ONLY FOR double copy an scratch) 144 typeset -r R_BUF=${SCRATCHDIR}/IGCM_OUT 145 146 #==================================================== 147 #- BIG_DIR : BIG_DIR to store files waiting for rebuild 148 typeset -r BIG_DIR=${BIG_DIR:=${SCRATCHDIR}/REBUILD} 141 149 142 150 #==================================================== … … 149 157 150 158 #==================================================== 151 #- BIG_DIR : BIG_DIR to store files waiting for rebuild152 typeset -r BIG_DIR=${BIG_DIR:=${SCRATCHDIR}/REBUILD}153 154 #====================================================155 159 #- HOST_MPIRUN_COMMAND 156 160 typeset -r HOST_MPIRUN_COMMAND=${HOST_MPIRUN_COMMAND:="mpirun"} … … 161 165 162 166 #D-#================================================== 167 #D-function IGCM_sys_RshMaster 168 #D-* Purpose: Connection to frontend machine. 169 #D-* Examples: 170 #D- 171 function IGCM_sys_RshMaster { 172 IGCM_debug_PushStack "IGCM_sys_RshMaster" $@ 173 ssh -t ${MASTER} /bin/ksh <<-EOF 174 export libIGCM=${libIGCM} 175 export DEBUG_debug=${DEBUG_debug} 176 . ${libIGCM}/libIGCM_debug/libIGCM_debug.ksh 177 . ${libIGCM}/libIGCM_card/libIGCM_card.ksh 178 ${@} 179 EOF 180 if [ $? -gt 0 ] ; then 181 echo "IGCM_sys_RshMaster : erreur." 182 IGCM_debug_Exit "IGCM_sys_RshMaster" 183 fi 184 IGCM_debug_PopStack "IGCM_sys_RshMaster" 185 } 186 187 #D-#================================================== 163 188 #D-function IGCM_sys_RshArchive 164 189 #D-* Purpose: Archive rsh command … … 166 191 #D- 167 192 function IGCM_sys_RshArchive { 168 169 170 ${@}193 IGCM_debug_PushStack "IGCM_sys_RshArchive" $@ 194 /bin/ksh <<-EOF 195 ${@} 171 196 EOF 172 173 174 175 176 197 if [ $? -gt 0 ] ; then 198 echo "IGCM_sys_RshArchive : erreur." 199 IGCM_debug_Exit "IGCM_sys_RshArchive" 200 fi 201 IGCM_debug_PopStack "IGCM_sys_RshArchive" 177 202 } 178 203 … … 183 208 #D- 184 209 function IGCM_sys_RshPost { 185 IGCM_debug_PushStack "IGCM_sys_RshPost" $@ 186 if ( $DEBUG_sys ) ; then 187 echo "IGCM_sys_RshPost :" $@ 188 fi 210 IGCM_debug_PushStack "IGCM_sys_RshPost" $@ 211 if ( $DEBUG_sys ) ; then 212 echo "IGCM_sys_RshPost :" $@ 213 fi 214 215 #echo cat tmp_IGCM_sys_RshPost_$$ INITIAL 216 #cat tmp_IGCM_sys_RshPost_$$ 217 # keep standard input (stdin) for the loop onto temporary file 218 cat >tmp_IGCM_sys_RshPost_$$ 219 220 # ============ FRONTEND START ============ # 221 222 /bin/ksh <tmp_IGCM_sys_RshPost_$$ 223 if [ $? -gt 0 ] ; then 224 echo "IGCM_sys_RshPost : erreur." 225 IGCM_debug_Exit "IGCM_sys_RshPost" 226 fi 227 \rm tmp_IGCM_sys_RshPost_$$ 228 229 # ============ FRONTEND END ============ # 189 230 190 231 # ============ CESIUM START ============ # 191 # typeset NB_ESSAI DELAI status 192 # #nombre d'essai avant abandon 193 # NB_ESSAI=5 194 # #temps entre chaque essai 195 # DELAI=10 196 # i=0 197 # while [ $i -ne $NB_ESSAI ] ; do 198 # ssh -t mercure ssh cesium /bin/ksh ${@} 2>/dev/null 199 # status=$? 200 # if [ ${status} -ne 0 ]; 201 # then 202 # sleep $DELAI 203 # else 204 # break 205 # fi 206 # let i=$i+1 207 # done 232 # typeset NB_ESSAI DELAI status i 233 # # number of tentative 234 # NB_ESSAI=10 235 # # time delay between tentative 236 # DELAI=10 237 # (( i = 0 )) 238 # while [ $i -lt $NB_ESSAI ] ; do 239 # ssh -t mercure01 ssh cesium /bin/ksh <tmp_IGCM_sys_RshPost_$$ 240 # status=$? 241 # if [ ${status} -gt 0 ]; then 242 # IGCM_debug_Print 2 "IGCM_sys_RshPost : ssh failed ${i}/${NB_ESSAI}" 243 # IGCM_debug_Print 2 "IGCM_sys_RshPost : sleep ${DELAI} seconds and try again." 244 # sleep $DELAI 245 # else 246 # break 247 # fi 248 # (( i = i + 1 )) 249 # done 250 # # delete temporary file 251 # /bin/rm tmp_IGCM_sys_RshPost_$$ 208 252 # ============ CESIUM END ============ # 209 253 210 /bin/ksh ${@} 211 if [ $? -gt 0 ] ; then 212 echo "IGCM_sys_RshPost : erreur." 213 IGCM_debug_Exit "IGCM_sys_RshPost" 214 fi 215 IGCM_debug_PopStack "IGCM_sys_RshPost" 254 IGCM_debug_PopStack "IGCM_sys_RshPost" 216 255 } 217 256 … … 222 261 #D- 223 262 function IGCM_sys_SendMail { 224 IGCM_debug_PushStack "IGCM_sys_SendMail" $@ 225 if ( $DEBUG_sys ) ; then 226 echo "IGCM_sys_SendMail :" $@ 227 fi 228 229 if ( ${ExitFlag} ) ; then 230 status=failed 231 # Nothing fo now 232 else 233 status=completed 234 fi 235 236 ssh ${MASTER} /bin/ksh <<-EOF 237 export LOGIN=${LOGIN} 238 export config_UserChoices_JobName=${config_UserChoices_JobName} 239 export config_UserChoices_MailName=${config_UserChoices_MailName} 240 export DateBegin=${DateBegin} 241 export DateEnd=${DateEnd} 242 export R_SAVE=${R_SAVE} 243 export SUBMIT_DIR=${SUBMIT_DIR} 244 export status=${status} 245 246 cat << END_MAIL > job_end.mail 247 Dear ${LOGIN}, 263 IGCM_debug_PushStack "IGCM_sys_SendMail" $@ 264 if ( $DEBUG_sys ) ; then 265 echo "IGCM_sys_SendMail :" $@ 266 fi 267 268 if ( ${ExitFlag} ) ; then 269 status=failed 270 else 271 status=completed 272 fi 273 274 ssh ${MASTER} /bin/ksh <<-EOF 275 export LOGIN=${LOGIN} 276 export config_UserChoices_JobName=${config_UserChoices_JobName} 277 export config_UserChoices_MailName=${config_UserChoices_MailName} 278 export DateBegin=${DateBegin} 279 export DateEnd=${DateEnd} 280 export R_SAVE=${R_SAVE} 281 export SUBMIT_DIR=${SUBMIT_DIR} 282 export status=${status} 283 284 cat << END_MAIL > job_end.mail 285 Dear ${LOGIN}, 248 286 249 287 Simulation ${config_UserChoices_JobName} is ${status} on supercomputer `hostname`. … … 254 292 END_MAIL 255 293 256 if [ ! -z ${config_UserChoices_MailName}] ; then257 258 259 260 261 262 263 294 if [ X"${config_UserChoices_MailName}" != X ] ; then 295 mailx -s "${config_UserChoices_JobName} ${status}" ${config_UserChoices_MailName} < job_end.mail 296 elif [ -f ~/.forward ] ; then 297 mailx -s "${config_UserChoices_JobName} ${status}" $( cat ~/.forward ) < job_end.mail 298 fi 299 300 sleep 10 301 rm -f job_end.mail 264 302 EOF 265 303 266 267 268 269 270 304 if [ $? -gt 0 ] ; then 305 echo "IGCM_sys_SendMail : erreur." 306 IGCM_debug_Exit "IGCM_sys_SendMail" 307 fi 308 IGCM_debug_PopStack "IGCM_sys_SendMail" 271 309 } 272 310 … … 277 315 #D- 278 316 function IGCM_sys_Mkdir { 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 317 IGCM_debug_PushStack "IGCM_sys_Mkdir" $@ 318 if ( $DEBUG_sys ) ; then 319 echo "IGCM_sys_Mkdir :" $@ 320 fi 321 if [ ! -d ${1} ]; then 322 \mkdir -p $1 323 if [ $? -gt 0 ] ; then 324 echo "IGCM_sys_Mkdir : erreur." 325 IGCM_debug_Exit "IGCM_sys_Mkdir" 326 fi 327 fi 328 # vérification : 329 if [ ! -d ${1} ] ; then 330 echo "IGCM_sys_Mkdir : erreur." 331 IGCM_debug_Exit "IGCM_sys_Mkdir" 332 fi 333 IGCM_debug_PopStack "IGCM_sys_Mkdir" 296 334 } 297 335 … … 302 340 #D- 303 341 function IGCM_sys_MkdirArchive { 304 305 306 307 308 309 310 311 312 313 314 315 316 342 IGCM_debug_PushStack "IGCM_sys_MkdirArchive" $@ 343 if ( $DEBUG_sys ) ; then 344 echo "IGCM_sys_MkdirArchive :" $@ 345 fi 346 #- creation de repertoire sur le serveur fichier 347 if [ ! -d ${1} ]; then 348 \mkdir -p $1 349 if [ $? -gt 0 ] ; then 350 echo "IGCM_sys_MkdirArchive : erreur." 351 IGCM_debug_Exit "IGCM_sys_MkdirArchive" 352 fi 353 fi 354 IGCM_debug_PopStack "IGCM_sys_MkdirArchive" 317 355 } 318 356 … … 323 361 #D- 324 362 function IGCM_sys_MkdirWork { 325 326 327 328 329 330 331 332 333 334 335 336 337 363 IGCM_debug_PushStack "IGCM_sys_MkdirWork" $@ 364 if ( $DEBUG_sys ) ; then 365 echo "IGCM_sys_MkdirWork :" $@ 366 fi 367 #- creation de repertoire sur le serveur fichier 368 if [ ! -d ${1} ]; then 369 \mkdir -p $1 370 if [ $? -gt 0 ] ; then 371 echo "IGCM_sys_MkdirWork : erreur." 372 IGCM_debug_Exit "IGCM_sys_MkdirWork" 373 fi 374 fi 375 IGCM_debug_PopStack "IGCM_sys_MkdirWork" 338 376 } 339 377 … … 344 382 #D- 345 383 function IGCM_sys_Cd { 346 347 348 349 350 351 352 353 354 355 384 IGCM_debug_PushStack "IGCM_sys_Cd" $@ 385 if ( $DEBUG_sys ) ; then 386 echo "IGCM_sys_Cd :" $@ 387 fi 388 \cd $1 389 if [ $? -gt 0 ] ; then 390 echo "IGCM_sys_Cd : erreur." 391 IGCM_debug_Exit "IGCM_sys_Cd" 392 fi 393 IGCM_debug_PopStack "IGCM_sys_Cd" 356 394 } 357 395 … … 362 400 #D- 363 401 function IGCM_sys_Chmod { 364 365 366 367 368 369 370 371 372 373 374 375 376 377 402 IGCM_debug_PushStack "IGCM_sys_Chmod" -- $@ 403 if ( $DEBUG_sys ) ; then 404 echo "IGCM_sys_Chmod :" $@ 405 fi 406 if [ $DRYRUN -le 1 ]; then 407 \chmod $@ 408 if [ $? -gt 0 ] ; then 409 echo "IGCM_sys_Chmod : erreur." 410 IGCM_debug_Exit "IGCM_sys_Chmod" 411 fi 412 else 413 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 414 fi 415 IGCM_debug_PopStack "IGCM_sys_Chmod" 378 416 } 379 417 … … 384 422 #D- 385 423 function IGCM_sys_FileSize { 386 387 388 389 390 391 392 393 394 395 424 IGCM_debug_PushStack "IGCM_sys_FileSize" $@ 425 426 typeset sizeF 427 set +A sizeF -- $( ls -la ${1} ) 428 if [ $? -gt 0 ] ; then 429 IGCM_debug_Exit "IGCM_sys_FileSize" 430 fi 431 eval ${2}=${sizeF[4]} 432 433 IGCM_debug_PopStack "IGCM_sys_FileSize" 396 434 } 397 435 … … 402 440 #D- 403 441 function IGCM_sys_TestDir { 404 405 406 407 408 409 410 411 412 442 IGCM_debug_PushStack "IGCM_sys_TestDir" $@ 443 if ( $DEBUG_sys ) ; then 444 echo "IGCM_sys_TestDir :" $@ 445 fi 446 typeset ExistFlag 447 ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 ) 448 IGCM_debug_PopStack "IGCM_sys_TestDir" 449 450 return ${ExistFlag} 413 451 } 414 452 … … 419 457 #D- 420 458 function IGCM_sys_TestDirArchive { 421 IGCM_debug_PushStack "IGCM_sys_TestDirArchive" $@ 422 if ( $DEBUG_sys ) ; then 423 echo "IGCM_sys_TestDirArchive :" $@ 424 fi 425 typeset ExistFlag 426 ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 ) 427 IGCM_debug_PopStack "IGCM_sys_TestDirArchive" 428 429 return ${ExistFlag} 459 IGCM_debug_PushStack "IGCM_sys_TestDirArchive" $@ 460 if ( $DEBUG_sys ) ; then 461 echo "IGCM_sys_TestDirArchive :" $@ 462 fi 463 typeset ExistFlag 464 ExistFlag=$( [ -d $1 ] && echo 0 || echo 1 ) 465 IGCM_debug_PopStack "IGCM_sys_TestDirArchive" 466 467 return ${ExistFlag} 468 } 469 470 #D-#================================================== 471 #D-function IGCM_sys_IsFileArchived 472 #D-* Purpose: Test file that must NOT EXISTS on Archive 473 #D-* Examples: 474 #D- 475 function IGCM_sys_IsFileArchived { 476 IGCM_debug_PushStack "IGCM_sys_IsFileArchived" $@ 477 if ( $DEBUG_sys ) ; then 478 echo "IGCM_sys_IsFileArchived :" $@ 479 fi 480 typeset IsArchivedFlag 481 IsArchivedFlag=$( [ X$( echo $1 | grep ^\/dmnfs ) != X ] && echo 0 || echo 1 ) 482 IGCM_debug_PopStack "IGCM_sys_IsFileArchived" 483 484 return ${IsArchivedFlag} 430 485 } 431 486 … … 436 491 #D- 437 492 function IGCM_sys_TestFileArchive { 438 IGCM_debug_PushStack "IGCM_sys_TestFileArchive" $@ 439 typeset ExistFlag 440 ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 ) 441 IGCM_debug_PopStack "IGCM_sys_TestFileArchive" 442 443 return ${ExistFlag} 493 IGCM_debug_PushStack "IGCM_sys_TestFileArchive" $@ 494 if ( $DEBUG_sys ) ; then 495 echo "IGCM_sys_TestFileArchive :" $@ 496 fi 497 typeset ExistFlag 498 ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 ) 499 IGCM_debug_PopStack "IGCM_sys_TestFileArchive" 500 501 return ${ExistFlag} 502 } 503 504 #D-#================================================== 505 #D-function IGCM_sys_TestFileBuffer 506 #D-* Purpose: Test file that must NOT EXISTS on Buffer 507 #D-* Examples: 508 #D- 509 function IGCM_sys_TestFileBuffer { 510 IGCM_debug_PushStack "IGCM_sys_TestFileBuffer" $@ 511 typeset ExistFlag 512 ExistFlag=$( [ -f $1 ] && echo 0 || echo 1 ) 513 IGCM_debug_PopStack "IGCM_sys_TestFileBuffer" 514 515 return ${ExistFlag} 444 516 } 445 517 … … 450 522 #D- 451 523 function IGCM_sys_CountFileArchive { 452 IGCM_debug_PushStack "IGCM_sys_CountFileArchive" $@ 453 ls ${@} 2>/dev/null | wc -l 454 if [ $? -gt 0 ] ; then 455 echo "IGCM_sys_CountFileArchive : erreur." 456 fi 457 IGCM_debug_PopStack "IGCM_sys_CountFileArchive" 524 IGCM_debug_PushStack "IGCM_sys_CountFileArchive" $@ 525 ls ${@} 2>/dev/null | wc -l 526 if [ $? -gt 0 ] ; then 527 echo "IGCM_sys_CountFileArchive : erreur." 528 fi 529 IGCM_debug_PopStack "IGCM_sys_CountFileArchive" 530 } 531 532 #D-#================================================== 533 #D-function IGCM_sys_CountFileBuffer 534 #D-* Purpose: Count files on Scratch filesystem 535 #D-* Examples: 536 #D- 537 function IGCM_sys_CountFileBuffer { 538 IGCM_debug_PushStack "IGCM_sys_CountFileBuffer" $@ 539 ls ${@} 2>/dev/null | wc -l 540 if [ $? -gt 0 ] ; then 541 echo "IGCM_sys_CountFileBuffer : erreur." 542 fi 543 IGCM_debug_PopStack "IGCM_sys_CountFileBuffer" 458 544 } 459 545 … … 464 550 #D- 465 551 function IGCM_sys_Tree { 466 467 468 469 470 471 472 473 552 IGCM_debug_PushStack "IGCM_sys_Tree" $@ 553 if ( $DEBUG_sys ) ; then 554 echo "IGCM_sys_Tree :" $@ 555 fi 556 557 \ls -lR ${@} 558 559 IGCM_debug_PopStack "IGCM_sys_Tree" 474 560 } 475 561 476 562 #D-#================================================== 477 563 #D-function IGCM_sys_Tar 478 #D-* Purpose: master un-tar command564 #D-* Purpose: master tar command 479 565 #D-* Examples: 480 566 #D- 481 567 function IGCM_sys_Tar { 482 483 484 485 486 \tar xvf $1487 488 489 490 491 568 IGCM_debug_PushStack "IGCM_sys_Tar" $@ 569 if ( $DEBUG_sys ) ; then 570 echo "IGCM_sys_Tar :" $@ 571 fi 572 \tar cf $@ 573 if [ $? -gt 0 ] ; then 574 echo "IGCM_sys_Tar : erreur." 575 IGCM_debug_Exit "IGCM_sys_Tar" 576 fi 577 IGCM_debug_PopStack "IGCM_sys_Tar" 492 578 } 493 579 … … 498 584 #D- 499 585 function IGCM_sys_UnTar { 500 501 502 503 504 505 506 507 508 509 586 IGCM_debug_PushStack "IGCM_sys_UnTar" $@ 587 if ( $DEBUG_sys ) ; then 588 echo "IGCM_sys_UnTar :" $@ 589 fi 590 \tar xvf $1 591 if [ $? -gt 0 ] ; then 592 echo "IGCM_sys_UnTar : erreur." 593 IGCM_debug_Exit "IGCM_sys_UnTar" 594 fi 595 IGCM_debug_PopStack "IGCM_sys_UnTar" 510 596 } 511 597 … … 516 602 #D- 517 603 function IGCM_sys_Qsub { 518 519 520 521 522 523 524 525 526 527 604 IGCM_debug_PushStack "IGCM_sys_Qsub" $@ 605 if ( $DEBUG_sys ) ; then 606 echo "IGCM_sys_Qsub :" $@ 607 fi 608 /usr/bin/nqsII/qsub -o ${Script_Output} -N ${config_UserChoices_JobName}.${CumulPeriod} < $1 609 if [ $? -gt 0 ] ; then 610 echo "IGCM_sys_Qsub : erreur -o ${Script_Output} -N ${config_UserChoices_JobName}.${CumulPeriod} $@." 611 IGCM_debug_Exit "IGCM_sys_Qsub" 612 fi 613 IGCM_debug_PopStack "IGCM_sys_Qsub" 528 614 } 529 615 … … 534 620 #D- 535 621 function IGCM_sys_QsubPost { 536 IGCM_debug_PushStack "IGCM_sys_QsubPost" $@ 537 if ( $DEBUG_sys ) ; then 538 echo "IGCM_sys_QsubPost :" $@ 539 fi 540 # ============ CESIUM START ============ # 541 #/usr/local/bin/ccc_msub -o ${POST_DIR}/${Script_Post_Output}.out -e ${POST_DIR}/${Script_Post_Output}.e.out -E "-v ${listVarEnv}" ${libIGCM_POST}/$1.job 542 # ============ CESIUM END ============ # 543 /usr/bin/nqsII/qsub -o ${POST_DIR}/${Script_Post_Output}.out ${libIGCM}/$1.job -v ${listVarEnv} 544 if [ $? -gt 0 ] ; then 545 echo "IGCM_sys_QsubPost : erreur " $@ 546 IGCM_debug_Exit "IGCM_sys_QsubPost" 547 fi 548 IGCM_debug_PopStack "IGCM_sys_QsubPost" 622 IGCM_debug_PushStack "IGCM_sys_QsubPost" $@ 623 if ( $DEBUG_sys ) ; then 624 echo "IGCM_sys_QsubPost :" $@ 625 fi 626 627 # ============ FRONTEND START ============ # 628 629 /usr/bin/nqsII/qsub -o ${POST_DIR}/${Script_Post_Output}.out ${libIGCM}/$1.job -v ${listVarEnv} 630 631 # ============ FRONTEND END ============ # 632 633 # ============ CESIUM START ============ # 634 635 # typeset NB_ESSAI DELAI status i 636 # # number of tentative 637 # NB_ESSAI=10 638 # # time delay between tentative 639 # DELAI=10 640 # (( i = 0 )) 641 # while [ $i -lt $NB_ESSAI ] ; do 642 # /usr/local/bin/ccc_msub -o ${POST_DIR}/${Script_Post_Output}.out -e ${POST_DIR}/${Script_Post_Output}.e.out -E "-v ${listVarEnv}" ${libIGCM_POST}/$1.job 643 # status=$? 644 # if [ ${status} -gt 0 ]; then 645 # sleep $DELAI 646 # else 647 # break 648 # fi 649 # (( i = i + 1 )) 650 # done 651 652 # ============ CESIUM END ============ # 653 654 if [ $? -gt 0 ] ; then 655 echo "IGCM_sys_QsubPost : erreur " $@ 656 IGCM_debug_Exit "IGCM_sys_QsubPost" 657 fi 658 IGCM_debug_PopStack "IGCM_sys_QsubPost" 549 659 } 550 660 … … 560 670 #D- Error values and explanations can depend on your system version. 561 671 function IGCM_sys_Rsync_out { 562 RET=$1 563 if [ ! $RET ] ; then 564 echo "rsync error !" 565 fi 566 567 if [ $MYLANG = "fr" ]; then 568 case $RET in 569 0) return ;; 570 1) echo "Erreur de rsync ; RERR_SYNTAX : " 571 echo "Erreur de syntaxe ou d'utilisation." 572 return;; 573 2) echo "Erreur de rsync ; RERR_PROTOCOL : " 574 echo "Incompatibilité de protocole." 575 return;; 576 3) echo "Erreur de rsync ; RERR_FILESELECT 3" 577 echo "Erreurs lors de la sélection des fichiers d'entrée sortie et" 578 echo "répertoires" 579 return;; 580 4) echo "Erreur de rsync ; RERR_UNSUPPORTED" 581 echo "Action demandée non supportée : une tentative de manipulation de" 582 echo "fichiers 64-bits sur une plate-forme qui ne les supporte pas a" 583 echo "été faite ; ou une option qui est supportée par le client mais" 584 echo "pas par le serveur a été spécifiée." 585 return;; 586 10) echo "Erreur de rsync ; RERR_SOCKETIO" 587 echo "Erreur dans le socket d'entrée sortie" 588 return;; 589 11) echo "Erreur de rsync ; RERR_FILEIO" 590 echo "Erreur d'entrée sortie fichier" 591 return;; 592 12) echo "Erreur de rsync ; RERR_STREAMIO" 593 echo "Erreur dans flux de donnée du protocole rsync" 594 return;; 595 13) echo "Erreur de rsync ; RERR_MESSAGEIO" 596 echo "Erreur avec les diagnostics du programme" 597 return;; 598 14) echo "Erreur de rsync ; RERR_IPC" 599 echo "Erreur dans le code IPC" 600 return;; 601 20) echo "Erreur de rsync ; RERR_SIGNAL" 602 echo "SIGUSR1 ou SIGINT reçu" 603 return;; 604 21) echo "Erreur de rsync ; RERR_WAITCHILD" 605 echo "Une erreur retournée par waitpid()" 606 return;; 607 22) echo "Erreur de rsync ; RERR_MALLOC" 608 echo "Erreur lors de l'allocation des tampons de mémoire de coeur" 609 return;; 610 23) echo "" 611 echo "Erreur fichier inexistant" 612 return;; 613 30) echo "Erreur de rsync ; RERR_TIMEOUT" 614 echo "Temps d'attente écoulé dans l'envoi/réception de données" 615 return;; 616 *) echo "Erreur de rsync : code de retour de rsync inconnu :" $RET 617 return;; 618 esac 619 elif [ $MYLANG = "en" ] ; then 620 case $RET in 621 0) return;; 622 1) echo "rsync error : Syntax or usage error " 623 return;; 624 2) echo "rsync error : Protocol incompatibility " 625 return;; 626 3) echo "rsync error : Errors selecting input/output files, dirs" 627 return;; 628 4) echo "rsync error : Requested action not supported: an attempt" 629 echo "was made to manipulate 64-bit files on a platform that cannot support" 630 echo "them; or an option was specified that is supported by the client and" 631 echo "not by the server." 632 return;; 633 5) echo "rsync error : Error starting client-server protocol" 634 return;; 635 10) echo "rsync error : Error in socket I/O " 636 return;; 637 11) echo "rsync error : Error in file I/O " 638 return;; 639 12) echo "rsync error : Error in rsync protocol data stream " 640 return;; 641 13) echo "rsync error : Errors with program diagnostics " 642 return;; 643 14) echo "rsync error : Error in IPC code " 644 return;; 645 20) echo "rsync error : Received SIGUSR1 or SIGINT " 646 return;; 647 21) echo "rsync error : Some error returned by waitpid() " 648 return;; 649 22) echo "rsync error : Error allocating core memory buffers " 650 return;; 651 23) echo "rsync error : Partial transfer due to error" 652 return;; 653 24) echo "rsync error : Partial transfer due to vanished source files" 654 return;; 655 30) echo "rsync error : Timeout in data send/receive " 656 return;; 657 *) echo "rsync error : return code of rsync unknown :" $RET 658 return;; 659 esac 660 else 661 echo "unknown language $MYLANG." 662 return 663 fi 664 } 665 672 RET=$1 673 if [ ! $RET ] ; then 674 echo "rsync error !" 675 fi 676 677 if [ $MYLANG = "fr" ]; then 678 case $RET in 679 0) return ;; 680 1) echo "Erreur de rsync ; RERR_SYNTAX : " 681 echo "Erreur de syntaxe ou d'utilisation." 682 return;; 683 2) echo "Erreur de rsync ; RERR_PROTOCOL : " 684 echo "Incompatibilité de protocole." 685 return;; 686 3) echo "Erreur de rsync ; RERR_FILESELECT 3" 687 echo "Erreurs lors de la sélection des fichiers d'entrée sortie et" 688 echo "répertoires" 689 return;; 690 4) echo "Erreur de rsync ; RERR_UNSUPPORTED" 691 echo "Action demandée non supportée : une tentative de manipulation de" 692 echo "fichiers 64-bits sur une plate-forme qui ne les supporte pas a" 693 echo "été faite ; ou une option qui est supportée par le client mais" 694 echo "pas par le serveur a été spécifiée." 695 return;; 696 10) echo "Erreur de rsync ; RERR_SOCKETIO" 697 echo "Erreur dans le socket d'entrée sortie" 698 return;; 699 11) echo "Erreur de rsync ; RERR_FILEIO" 700 echo "Erreur d'entrée sortie fichier" 701 return;; 702 12) echo "Erreur de rsync ; RERR_STREAMIO" 703 echo "Erreur dans flux de donnée du protocole rsync" 704 return;; 705 13) echo "Erreur de rsync ; RERR_MESSAGEIO" 706 echo "Erreur avec les diagnostics du programme" 707 return;; 708 14) echo "Erreur de rsync ; RERR_IPC" 709 echo "Erreur dans le code IPC" 710 return;; 711 20) echo "Erreur de rsync ; RERR_SIGNAL" 712 echo "SIGUSR1 ou SIGINT reçu" 713 return;; 714 21) echo "Erreur de rsync ; RERR_WAITCHILD" 715 echo "Une erreur retournée par waitpid()" 716 return;; 717 22) echo "Erreur de rsync ; RERR_MALLOC" 718 echo "Erreur lors de l'allocation des tampons de mémoire de coeur" 719 return;; 720 23) echo "" 721 echo "Erreur fichier inexistant" 722 return;; 723 30) echo "Erreur de rsync ; RERR_TIMEOUT" 724 echo "Temps d'attente écoulé dans l'envoi/réception de données" 725 return;; 726 *) echo "Erreur de rsync : code de retour de rsync inconnu :" $RET 727 return;; 728 esac 729 elif [ $MYLANG = "en" ] ; then 730 case $RET in 731 0) return;; 732 1) echo "rsync error : Syntax or usage error " 733 return;; 734 2) echo "rsync error : Protocol incompatibility " 735 return;; 736 3) echo "rsync error : Errors selecting input/output files, dirs" 737 return;; 738 4) echo "rsync error : Requested action not supported: an attempt" 739 echo "was made to manipulate 64-bit files on a platform that cannot support" 740 echo "them; or an option was specified that is supported by the client and" 741 echo "not by the server." 742 return;; 743 5) echo "rsync error : Error starting client-server protocol" 744 return;; 745 10) echo "rsync error : Error in socket I/O " 746 return;; 747 11) echo "rsync error : Error in file I/O " 748 return;; 749 12) echo "rsync error : Error in rsync protocol data stream " 750 return;; 751 13) echo "rsync error : Errors with program diagnostics " 752 return;; 753 14) echo "rsync error : Error in IPC code " 754 return;; 755 20) echo "rsync error : Received SIGUSR1 or SIGINT " 756 return;; 757 21) echo "rsync error : Some error returned by waitpid() " 758 return;; 759 22) echo "rsync error : Error allocating core memory buffers " 760 return;; 761 23) echo "rsync error : Partial transfer due to error" 762 return;; 763 24) echo "rsync error : Partial transfer due to vanished source files" 764 return;; 765 30) echo "rsync error : Timeout in data send/receive " 766 return;; 767 *) echo "rsync error : return code of rsync unknown :" $RET 768 return;; 769 esac 770 else 771 echo "unknown language $MYLANG." 772 return 773 fi 774 } 666 775 667 776 #D-#================================================== … … 671 780 #D- 672 781 function IGCM_sys_Mirror_libIGCM { 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 782 IGCM_debug_PushStack "IGCM_sys_Mirror_libIGCM" 783 if ( $DEBUG_sys ) ; then 784 echo "IGCM_sys_Mirror_libIGCM" 785 fi 786 787 typeset RET DEST 788 789 mkdir -p ${HOME}/MIRROR/${PATHlibIGCM} 790 791 echo ${RSYNC} ${RSYNC_opt} ${libIGCM} ${HOME}/MIRROR/${PATHlibIGCM} > out_rsync 2>&1 792 ${RSYNC} ${RSYNC_opt} ${libIGCM} ${HOME}/MIRROR/${PATHlibIGCM} >> out_rsync 2>&1 793 RET=$? 794 795 if [ ${RET} -gt 0 ] ; then 796 echo "IGCM_sys_Mirror_libIGCM Warning : no libIGCM on cesium." 797 cat out_rsync 798 fi 799 IGCM_debug_PopStack "IGCM_sys_Mirror_libIGCM" 691 800 } 692 801 … … 694 803 #- Call IGCM_sys_Mirror_libIGCM now ! 695 804 if ( $MirrorlibIGCM ) ; then 696 805 IGCM_sys_Mirror_libIGCM 697 806 fi 698 807 … … 703 812 #D- 704 813 function IGCM_sys_Cp { 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 814 IGCM_debug_PushStack "IGCM_sys_Cp" $@ 815 if ( $DEBUG_sys ) ; then 816 echo "IGCM_sys_Cp :" $@ 817 fi 818 819 typeset RET 820 821 echo cp $@ > out_rsync 2>&1 822 \cp $@ >> out_rsync 2>&1 823 RET=$? 824 825 if [ ${RET} -gt 0 ] ; then 826 echo "IGCM_sys_Cp : error." 827 cat out_rsync 828 IGCM_debug_Exit "IGCM_sys_Cp" 829 else 830 \rm out_rsync 831 fi 832 IGCM_debug_PopStack "IGCM_sys_Cp" 724 833 } 725 834 … … 730 839 #D- 731 840 function IGCM_sys_Rm { 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 841 IGCM_debug_PushStack "IGCM_sys_Rm" -- $@ 842 if ( $DEBUG_sys ) ; then 843 echo "IGCM_sys_Rm :" $@ 844 fi 845 846 typeset RET 847 848 echo rm $@ > out_rsync 2>&1 849 \rm $@ >> out_rsync 2>&1 850 RET=$? 851 852 if [ ${RET} -gt 0 ] ; then 853 echo "IGCM_sys_Rm : error." 854 cat out_rsync 855 IGCM_debug_Exit "IGCM_sys_Rm" 856 else 857 \rm out_rsync 858 fi 859 IGCM_debug_PopStack "IGCM_sys_Rm" 751 860 } 752 861 … … 757 866 #D- 758 867 function IGCM_sys_Mv { 759 IGCM_debug_PushStack "IGCM_sys_Mv" $@ 760 if ( $DEBUG_sys ) ; then 761 echo "IGCM_sys_Mv :" $@ 762 fi 763 764 if [ $DRYRUN = 0 ]; then 765 766 typeset RET 767 768 echo mv $@ > out_rsync 2>&1 769 \mv $@ >> out_rsync 2>&1 770 RET=$? 868 IGCM_debug_PushStack "IGCM_sys_Mv" $@ 869 if ( $DEBUG_sys ) ; then 870 echo "IGCM_sys_Mv :" $@ 871 fi 872 873 if [ $DRYRUN = 0 ]; then 874 875 typeset RET 771 876 772 if [ ${RET} -gt 0 ] ; then 773 echo "IGCM_sys_Mv : error in mv." 774 cat out_rsync 775 IGCM_debug_Exit "IGCM_sys_Mv" 776 else 777 \rm out_rsync 778 fi 877 echo mv $@ > out_rsync 2>&1 878 \mv $@ >> out_rsync 2>&1 879 RET=$? 880 881 if [ ${RET} -gt 0 ] ; then 882 echo "IGCM_sys_Mv : error in mv." 883 cat out_rsync 884 IGCM_debug_Exit "IGCM_sys_Mv" 779 885 else 780 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 781 fi 782 783 IGCM_debug_PopStack "IGCM_sys_Mv" 886 \rm out_rsync 887 fi 888 else 889 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 890 fi 891 892 IGCM_debug_PopStack "IGCM_sys_Mv" 784 893 } 785 894 … … 790 899 #D- 791 900 function IGCM_sys_Put_Dir { 792 IGCM_debug_PushStack "IGCM_sys_Put_Dir" $@ 793 if ( $DEBUG_sys ) ; then 794 echo "IGCM_sys_Put_Dir :" $@ 795 fi 796 if [ $DRYRUN = 0 ]; then 797 if [ ! -d ${1} ] ; then 798 echo "WARNING : IGCM_sys_Put_Dir ${1} DOES NOT EXIST ." 799 IGCM_debug_PopStack "IGCM_sys_Put_Dir" 800 return 801 fi 802 803 typeset RET 804 805 # Only if we use rsync 806 #IGCM_sys_TestDirArchive $( dirname $2 ) 807 # 808 #USUAL WAY 809 \cp -r $1 $2 > out_rsync 2>&1 810 RET=$? 811 812 if [ ${RET} -gt 0 ] ; then 813 echo "IGCM_sys_Put_Dir : error." 814 cat out_rsync 815 IGCM_debug_Exit "IGCM_sys_Put_Dir" 816 else 817 \rm out_rsync 818 fi 901 IGCM_debug_PushStack "IGCM_sys_Put_Dir" $@ 902 if ( $DEBUG_sys ) ; then 903 echo "IGCM_sys_Put_Dir :" $@ 904 fi 905 if [ $DRYRUN = 0 ]; then 906 if [ ! -d ${1} ] ; then 907 echo "WARNING : IGCM_sys_Put_Dir ${1} DOES NOT EXIST ." 908 IGCM_debug_PopStack "IGCM_sys_Put_Dir" 909 return 910 fi 911 912 typeset RET 913 914 # Only if we use rsync 915 #IGCM_sys_TestDirArchive $( dirname $2 ) 916 # 917 #USUAL WAY 918 \cp -r $1 $2 > out_rsync 2>&1 919 RET=$? 920 921 if [ ${RET} -gt 0 ] ; then 922 echo "IGCM_sys_Put_Dir : error." 923 cat out_rsync 924 IGCM_debug_Exit "IGCM_sys_Put_Dir" 819 925 else 820 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 821 fi 822 IGCM_debug_PopStack "IGCM_sys_Put_Dir" 926 \rm out_rsync 927 fi 928 else 929 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 930 fi 931 IGCM_debug_PopStack "IGCM_sys_Put_Dir" 823 932 } 824 933 825 934 #D-#================================================== 826 935 #D-function IGCM_sys_Get_Dir 827 #D-* Purpose: Copy a complete directory from $ (ARCHIVE)936 #D-* Purpose: Copy a complete directory from ${ARCHIVE} 828 937 #D-* Examples: 829 938 #D- 830 939 function IGCM_sys_Get_Dir { 831 IGCM_debug_PushStack "IGCM_sys_Get_Dir" $@ 832 if ( $DEBUG_sys ) ; then 833 echo "IGCM_sys_Get_Dir :" $@ 834 fi 835 if [ $DRYRUN = 0 ]; then 836 if [ ! -d ${1} ] ; then 837 echo "WARNING : IGCM_sys_Get_Dir ${1} DOES NOT EXIST ." 838 IGCM_debug_PopStack "IGCM_sys_Get_Dir" 839 return 840 fi 841 842 typeset RET 843 844 # Only if we use rsync 845 #IGCM_sys_TestDirArchive $( dirname $2 ) 846 # 847 #USUAL WAY 848 \cp -r $1 $2 > out_rsync 2>&1 849 RET=$? 850 851 if [ ${RET} -gt 0 ] ; then 852 echo "IGCM_sys_Get_Dir : error." 853 cat out_rsync 854 IGCM_debug_Exit "IGCM_sys_Get_Dir" 855 else 856 \rm out_rsync 857 fi 940 IGCM_debug_PushStack "IGCM_sys_Get_Dir" $@ 941 if ( $DEBUG_sys ) ; then 942 echo "IGCM_sys_Get_Dir :" $@ 943 fi 944 if [ $DRYRUN = 0 ]; then 945 # if [ ! -d ${1} ] ; then 946 # echo "WARNING : IGCM_sys_Get_Dir ${1} DOES NOT EXIST ." 947 # IGCM_debug_PopStack "IGCM_sys_Get_Dir" 948 # return 949 # fi 950 951 typeset RET 952 953 # Only if we use rsync 954 #IGCM_sys_TestDirArchive $( dirname $2 ) 955 # 956 # USUAL WAY 957 # add dmfind/dmget (to demigrate all offline files) : 958 dmfind $1 -state MIG -o -state OFL -o -state PAR | dmget 959 \cp -r $1 $2 > out_rsync 2>&1 960 RET=$? 961 962 if [ ${RET} -gt 0 ] ; then 963 echo "IGCM_sys_Get_Dir : error." 964 cat out_rsync 965 IGCM_debug_Exit "IGCM_sys_Get_Dir" 858 966 else 859 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 860 fi 861 IGCM_debug_PopStack "IGCM_sys_Get_Dir" 967 \rm out_rsync 968 fi 969 else 970 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 971 fi 972 IGCM_debug_PopStack "IGCM_sys_Get_Dir" 862 973 } 863 974 864 975 #D-#================================================== 865 976 #D-function IGCM_sys_Put_Rest 866 #D-* Purpose: Put computied restarts on $ (ARCHIVE).977 #D-* Purpose: Put computied restarts on ${ARCHIVE}. 867 978 #D- File and target directory must exist. 868 979 #D-* Examples: 869 980 #D- 870 981 function IGCM_sys_Put_Rest { 871 IGCM_debug_PushStack "IGCM_sys_Put_Rest" $@ 872 if ( $DEBUG_sys ) ; then 873 echo "IGCM_sys_Put_Rest :" $@ 874 fi 875 if [ $DRYRUN = 0 ]; then 876 if [ ! -f ${1} ] ; then 877 echo "ERROR : IGCM_sys_Put_Rest ${1} DOES NOT EXIST ." 878 IGCM_debug_Exit "IGCM_sys_Put_Rest" 879 fi 880 881 typeset RET 882 # 883 if [ X${JobType} = XRUN ] ; then 884 IGCM_sys_Chmod 444 ${1} 885 fi 886 # 887 IGCM_sys_TestDirArchive $( dirname $2 ) 888 # 889 # USUAL WAY 890 putfer $1 $2 > out_rsync 2>&1 891 RET=$? 982 IGCM_debug_PushStack "IGCM_sys_Put_Rest" $@ 983 if ( $DEBUG_sys ) ; then 984 echo "IGCM_sys_Put_Rest :" $@ 985 fi 986 if [ $DRYRUN = 0 ]; then 987 if [ ! -f ${1} ] ; then 988 echo "ERROR : IGCM_sys_Put_Rest ${1} DOES NOT EXIST ." 989 IGCM_debug_Exit "IGCM_sys_Put_Rest" 990 fi 991 992 typeset RET 993 # 994 if [ X${JobType} = XRUN ] ; then 995 IGCM_sys_Chmod 444 ${1} 996 fi 997 998 # 999 # USUAL WAY 1000 \cp $1 $2 > out_rsync 2>&1 1001 RET=$? 892 1002 893 1003 # #RSYNC WITH NETWORK SSH CALL 894 # echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${ RHOST}:${2} > out_rsync 2>&1895 # ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${ RHOST}:${2} >> out_rsync 2>&11004 # echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} > out_rsync 2>&1 1005 # ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> out_rsync 2>&1 896 1006 897 1007 # #RSYNC WITH NFS USE … … 905 1015 # (( RET=RET+$? )) 906 1016 907 if [ ${RET} -gt 0 ] ; then 908 echo "IGCM_sys_Put_Rest : error." 909 cat out_rsync 910 IGCM_debug_Exit "IGCM_sys_Put_Rest" 911 else 912 \rm out_rsync 913 fi 1017 if [ ${RET} -gt 0 ] ; then 1018 echo "IGCM_sys_Put_Rest : error." 1019 cat out_rsync 1020 IGCM_debug_Exit "IGCM_sys_Put_Rest" 914 1021 else 915 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 916 fi 917 IGCM_debug_PopStack "IGCM_sys_Put_Rest" 1022 \rm out_rsync 1023 fi 1024 else 1025 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 1026 fi 1027 IGCM_debug_PopStack "IGCM_sys_Put_Rest" 1028 } 1029 1030 #D-#================================================== 1031 #D-function IGCM_sys_PutBuffer_Rest 1032 #D-* Purpose: Put computied restarts on ${SCRATCHDIR}. 1033 #D- File and target directory must exist. 1034 #D-* Examples: 1035 #D- 1036 function IGCM_sys_PutBuffer_Rest { 1037 IGCM_debug_PushStack "IGCM_sys_PutBuffer_Rest" $@ 1038 if ( $DEBUG_sys ) ; then 1039 echo "IGCM_sys_PutBuffer_Rest :" $@ 1040 fi 1041 if [ $DRYRUN = 0 ]; then 1042 if [ ! -f ${1} ] ; then 1043 echo "ERROR : IGCM_sys_PutBuffer_Rest ${1} DOES NOT EXIST ." 1044 IGCM_debug_Exit "IGCM_sys_PutBuffer_Rest" 1045 fi 1046 1047 typeset RET 1048 # 1049 if [ X${JobType} = XRUN ] ; then 1050 IGCM_sys_Chmod 444 ${1} 1051 fi 1052 1053 # 1054 # USUAL WAY 1055 \cp $1 $2 > out_rsync 2>&1 1056 RET=$? 1057 1058 if [ ${RET} -gt 0 ] ; then 1059 echo "IGCM_sys_PutBuffer_Rest : error." 1060 cat out_rsync 1061 IGCM_debug_Exit "IGCM_sys_PutBuffer_Rest" 1062 else 1063 \rm out_rsync 1064 fi 1065 else 1066 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 1067 fi 1068 IGCM_debug_PopStack "IGCM_sys_PutBuffer_Rest" 918 1069 } 919 1070 920 1071 #D-#================================================== 921 1072 #D-function IGCM_sys_Put_Out 922 #D-* Purpose: Copy a file on $ (ARCHIVE) after havechmod it in readonly1073 #D-* Purpose: Copy a file on ${ARCHIVE} after having chmod it in readonly 923 1074 #D-* Examples: 924 1075 #D- 925 1076 function IGCM_sys_Put_Out { 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 # WORKPATH=$( dirname $2 | sed -e "s|${R_OUT}|${R_OUT_SCR}|" )949 950 951 952 953 954 955 956 957 958 959 960 961 962 putfer$1 $2 > out_rsync 2>&1963 1077 IGCM_debug_PushStack "IGCM_sys_Put_Out" $@ 1078 if ( $DEBUG_sys ) ; then 1079 echo "IGCM_sys_Put_Out :" $@ 1080 fi 1081 if [ $DRYRUN = 0 ]; then 1082 if [ ! -f ${1} ] ; then 1083 echo "WARNING : IGCM_sys_Put_Out ${1} DOES NOT EXIST ." 1084 IGCM_debug_PopStack "IGCM_sys_Put_Out" 1085 return 1 1086 fi 1087 # 1088 IGCM_sys_MkdirArchive $( dirname $2 ) 1089 # 1090 typeset RET 1091 1092 #===================================================== 1093 # COMMENT OUT DOUBLE COPY ON SCRATCHDIR 1094 #===================================================== 1095 1096 #echo ${2} | grep "${R_OUT}" > /dev/null 2>&1 1097 #if [ $? -eq 0 ] ; then 1098 # typeset WORKPATH FILEPATH 1099 # WORKPATH=$( dirname $2 | sed -e "s|${R_OUT}|${R_BUF}|" ) 1100 # IGCM_sys_MkdirWork ${WORKPATH} 1101 # FILEPATH=${WORKPATH}/$( basename $2 ) 1102 # # 1103 # IGCM_sys_Cp ${1} ${FILEPATH} 1104 #fi 1105 1106 if [ X${JobType} = XRUN ] ; then 1107 if [ X${3} = X ] ; then 1108 IGCM_sys_Chmod 444 ${1} 1109 fi 1110 fi 1111 # 1112 # USUAL WAY 1113 \cp $1 $2 > out_rsync 2>&1 1114 RET=$? 964 1115 965 1116 # #RSYNC WITH NETWORK SSH CALL 966 # echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${ RHOST}:${2} > out_rsync 2>&1967 # ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${ RHOST}:${2} >> out_rsync 2>&11117 # echo ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} > out_rsync 2>&1 1118 # ${RSYNC} ${RSYNC_opt} -e ssh ${RUN_DIR}/$1 ${STOREHOST}:${2} >> out_rsync 2>&1 968 1119 969 1120 # #RSYNC WITH NFS USE … … 977 1128 # (( RET=RET+$? )) 978 1129 979 if [ ${RET} -gt 0 ] ; then 980 echo "IGCM_sys_Put_Out : error." 981 cat out_rsync 982 IGCM_debug_Exit "IGCM_sys_Put_Out" 983 else 984 \rm out_rsync 985 fi 1130 if [ ${RET} -gt 0 ] ; then 1131 echo "IGCM_sys_Put_Out : error." 1132 cat out_rsync 1133 IGCM_debug_Exit "IGCM_sys_Put_Out" 986 1134 else 987 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 988 fi 989 IGCM_debug_PopStack "IGCM_sys_Put_Out" 990 return 0 1135 \rm out_rsync 1136 fi 1137 else 1138 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 1139 fi 1140 IGCM_debug_PopStack "IGCM_sys_Put_Out" 1141 return 0 1142 } 1143 1144 #D-#================================================== 1145 #D-function IGCM_sys_PutBuffer_Out 1146 #D-* Purpose: Copy a file on ${SCRATCHDIR} after having chmod it in readonly 1147 #D-* Examples: 1148 #D- 1149 function IGCM_sys_PutBuffer_Out { 1150 IGCM_debug_PushStack "IGCM_sys_PutBuffer_Out" $@ 1151 if ( $DEBUG_sys ) ; then 1152 echo "IGCM_sys_PutBuffer_Out :" $@ 1153 fi 1154 if [ $DRYRUN = 0 ]; then 1155 if [ ! -f ${1} ] ; then 1156 echo "WARNING : IGCM_sys_PutBuffer_Out ${1} DOES NOT EXIST ." 1157 IGCM_debug_PopStack "IGCM_sys_PutBuffer_Out" 1158 return 1 1159 fi 1160 # 1161 IGCM_sys_Mkdir $( dirname $2 ) 1162 # 1163 typeset RET 1164 1165 if [ X${JobType} = XRUN ] ; then 1166 if [ X${3} = X ] ; then 1167 IGCM_sys_Chmod 444 ${1} 1168 fi 1169 fi 1170 # 1171 # USUAL WAY 1172 \cp $1 $2 > out_rsync 2>&1 1173 RET=$? 1174 1175 if [ ${RET} -gt 0 ] ; then 1176 echo "IGCM_sys_PutBuffer_Out : error." 1177 cat out_rsync 1178 IGCM_debug_Exit "IGCM_sys_PutBuffer_Out" 1179 else 1180 \rm out_rsync 1181 fi 1182 else 1183 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 1184 fi 1185 IGCM_debug_PopStack "IGCM_sys_PutBuffer_Out" 1186 return 0 991 1187 } 992 1188 … … 997 1193 #D- IGCM_sys_Get /l Array_contain_myfiles /destpath/ 998 1194 function IGCM_sys_Get { 999 IGCM_debug_PushStack "IGCM_sys_Get" $@ 1000 1001 typeset DEST RET dm_liste ifile target file_work 1002 1003 if ( $DEBUG_sys ) ; then 1004 echo "IGCM_sys_Get :" $@ 1005 fi 1006 if [ $DRYRUN -le 2 ]; then 1007 if [ X${1} = X'/l' ] ; then 1008 # test if the first file is present in the old computation : 1009 eval set +A dm_liste \${${2}} 1010 else 1011 eval set +A dm_liste ${1} 1012 fi 1013 eval DEST=\${${#}} 1014 1015 #===================================================== 1016 # COMMENT OUT DOUBLE COPY ON SCRATCHDIR 1017 #===================================================== 1018 1019 # Is it an R_OUT file (not R_IN) ? 1020 #echo ${dm_liste[0]} | grep "${R_OUT}" > /dev/null 2>&1 1021 #if [ $? -eq 0 ] ; then 1022 # # Yes ? then we try to get it in SCRATCHDIR 1023 # set +A file_work $( echo ${dm_liste[*]} | sed -e "s|${R_OUT}|${R_OUT_SCR}|" ) 1024 # if [ -f ${file_work[0]} ] ; then 1025 # IGCM_sys_Cp ${file_work[*]} ${DEST} 1026 # IGCM_debug_PopStack "IGCM_sys_Get" 1027 # return 1028 # fi 1029 #fi 1030 1031 # test if the (first) file is present in the old computation : 1032 IGCM_sys_TestFileArchive ${dm_liste[0]} 1033 RET=$? 1034 if [ ${RET} -gt 0 ] ; then 1035 echo "IGCM_sys_Get, ERROR : regular file ${dm_liste[0]} DOES NOT EXIST ." 1036 IGCM_debug_Exit "IGCM_sys_Get" 1037 IGCM_debug_PopStack "IGCM_sys_Get" 1038 return 1039 fi 1040 1041 dmget ${dm_liste[*]} > out_rsync 2>&1 1042 RET=$? 1043 if [ ${RET} -gt 0 ] ; then 1044 echo "IGCM_sys_Get : demigration error." 1045 cat out_rsync 1046 IGCM_debug_Exit "IGCM_sys_Get" 1047 fi 1048 1049 #USUAL WAY 1050 if [ X${1} = X'/l' ] ; then 1051 (( RET=0 )) 1052 for target in ${dm_liste[*]} ; do 1053 local_file=$( basename ${target} ) 1054 \cp ${target} ${DEST}/${local_file} >> out_rsync 2>&1 1055 (( RET = RET + $? )) 1056 done 1057 else 1058 \cp ${dm_liste} ${DEST} >> out_rsync 2>&1 1059 RET=$? 1060 fi 1195 IGCM_debug_PushStack "IGCM_sys_Get" $@ 1196 1197 typeset DEST RET dm_liste ifile target file_work 1198 1199 if ( $DEBUG_sys ) ; then 1200 echo "IGCM_sys_Get :" $@ 1201 fi 1202 if [ $DRYRUN -le 2 ]; then 1203 if [ X${1} = X'/l' ] ; then 1204 # test if the first file is present in the old computation : 1205 eval set +A dm_liste \${${2}} 1206 else 1207 eval set +A dm_liste ${1} 1208 fi 1209 eval DEST=\${${#}} 1210 1211 #===================================================== 1212 # COMMENT OUT DOUBLE COPY ON SCRATCHDIR 1213 #===================================================== 1214 1215 # Is it an R_OUT file (not R_IN) ? 1216 #echo ${dm_liste[0]} | grep "${R_OUT}" > /dev/null 2>&1 1217 #if [ $? -eq 0 ] ; then 1218 # # Yes ? then we try to get it in SCRATCHDIR 1219 # set +A file_work $( echo ${dm_liste[*]} | sed -e "s|${R_OUT}|${R_BUF}|g" ) 1220 # if [ -f ${file_work[0]} ] ; then 1221 # IGCM_sys_Cp ${file_work[*]} ${DEST} 1222 # IGCM_debug_PopStack "IGCM_sys_Get" 1223 # return 1224 # fi 1225 #fi 1226 1227 # test if the (first) file is present in the old computation : 1228 IGCM_sys_TestFileArchive ${dm_liste[0]} 1229 RET=$? 1230 if [ ${RET} -gt 0 ] ; then 1231 echo "IGCM_sys_Get, ERROR : regular file ${dm_liste[0]} DOES NOT EXIST ." 1232 IGCM_debug_Exit "IGCM_sys_Get" 1233 fi 1234 1235 dmget ${dm_liste[*]} > out_rsync 2>&1 1236 RET=$? 1237 if [ ${RET} -gt 0 ] ; then 1238 echo "WARNING IGCM_sys_Get : demigration error." 1239 cat out_rsync 1240 echo "WARNING IGCM_sys_Get : will stop later if the cp fails." 1241 fi 1242 1243 #if [ ${RET} -gt 0 ] ; then 1244 # if [ ! "X$( grep "Lost dmusrcmd connection" out_rsync )" = "X" ] ; then 1245 # cat out_rsync 1246 # echo "WARNING IGCM_sys_Get : Lost dmusrcmd connection : " 1247 # sleep 30 1248 # echo "We try another time" 1249 # dmget ${dm_liste[*]} > out_rsync 2>&1 1250 # RET=$? 1251 # if [ ${RET} -gt 0 ] ; then 1252 # echo "ERROR IGCM_sys_Get : again demigration error :" 1253 # cat out_rsync 1254 # IGCM_debug_Exit "IGCM_sys_Get" 1255 # fi 1256 # else 1257 # echo "ERROR IGCM_sys_Get : demigration error :" 1258 # cat out_rsync 1259 # IGCM_debug_Exit "IGCM_sys_Get" 1260 # fi 1261 #fi 1262 1263 #USUAL WAY 1264 if [ X${1} = X'/l' ] ; then 1265 (( RET=0 )) 1266 for target in ${dm_liste[*]} ; do 1267 local_file=$( basename ${target} ) 1268 \cp ${target} ${DEST}/${local_file} >> out_rsync 2>&1 1269 (( RET = RET + $? )) 1270 done 1271 else 1272 \cp ${dm_liste} ${DEST} >> out_rsync 2>&1 1273 RET=$? 1274 fi 1061 1275 1062 1276 # #RSYNC WITH NETWORK SSH CALL 1063 # echo ${RSYNC} ${RSYNC_opt} -e ssh ${ RHOST}:"${dm_liste}" ${RHOST}:${RUN_DIR}/${DEST} > out_rsync 2>&11064 # ${RSYNC} ${RSYNC_opt} -e ssh ${ RHOST}:"${dm_liste}" ${RHOST}:${RUN_DIR}/${DEST} >> out_rsync 2>&11277 # echo ${RSYNC} ${RSYNC_opt} -e ssh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} > out_rsync 2>&1 1278 # ${RSYNC} ${RSYNC_opt} -e ssh ${STOREHOST}:"${dm_liste}" ${STOREHOST}:${RUN_DIR}/${DEST} >> out_rsync 2>&1 1065 1279 1066 1280 # #RSYNC WITH NFS USE … … 1074 1288 # (( RET=RET+$? )) 1075 1289 1076 if [ ${RET} -gt 0 ] ; then 1077 echo "IGCM_sys_Get : copy error." 1078 cat out_rsync 1079 IGCM_debug_Exit "IGCM_sys_Get" 1080 else 1081 \rm out_rsync 1082 fi 1290 if [ ${RET} -gt 0 ] ; then 1291 echo "IGCM_sys_Get : copy error." 1292 cat out_rsync 1293 IGCM_debug_Exit "IGCM_sys_Get" 1083 1294 else 1084 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 1085 fi 1086 IGCM_debug_PopStack "IGCM_sys_Get" 1087 } 1088 1089 ############################################################## A FINIR !! 1295 \rm out_rsync 1296 fi 1297 else 1298 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 1299 fi 1300 IGCM_debug_PopStack "IGCM_sys_Get" 1301 } 1302 1303 #D-#================================================== 1304 #D-function IGCM_sys_GetBuffer 1305 #D-* Purpose: Get a file from ${SCRATCHDIR} 1306 #D-* Examples: IGCM_sys_GetBuffer myfile /destpath/myfile_with_PREFIX 1307 #D- IGCM_sys_GetBuffer /l Array_contain_myfiles /destpath/ 1308 function IGCM_sys_GetBuffer { 1309 IGCM_debug_PushStack "IGCM_sys_GetBuffer" $@ 1310 1311 typeset DEST RET buf_liste ifile target file_work 1312 1313 if ( $DEBUG_sys ) ; then 1314 echo "IGCM_sys_GetBuffer :" $@ 1315 fi 1316 if [ $DRYRUN -le 2 ]; then 1317 if [ X${1} = X'/l' ] ; then 1318 # test if the first file is present in the old computation : 1319 eval set +A buf_liste \${${2}} 1320 else 1321 eval set +A buf_liste ${1} 1322 fi 1323 eval DEST=\${${#}} 1324 1325 #USUAL WAY 1326 if [ X${1} = X'/l' ] ; then 1327 (( RET=0 )) 1328 for target in ${buf_liste[*]} ; do 1329 local_file=$( basename ${target} ) 1330 \cp ${target} ${DEST}/${local_file} >> out_rsync 2>&1 1331 (( RET = RET + $? )) 1332 done 1333 else 1334 \cp ${buf_liste} ${DEST} >> out_rsync 2>&1 1335 RET=$? 1336 fi 1337 1338 if [ ${RET} -gt 0 ] ; then 1339 echo "IGCM_sys_GetBuffer : copy error." 1340 cat out_rsync 1341 IGCM_debug_Exit "IGCM_sys_GetBuffer" 1342 else 1343 \rm out_rsync 1344 fi 1345 else 1346 ( ${DEBUG_debug} ) && echo "DRYRUN mode = " $DRYRUN >> stack 1347 fi 1348 IGCM_debug_PopStack "IGCM_sys_GetBuffer" 1349 } 1090 1350 1091 1351 #D-#================================================== … … 1095 1355 #D- 1096 1356 function IGCM_sys_GetDate_FichWork { 1097 IGCM_debug_PushStack "IGCM_sys_FichWork" $@ 1098 if ( $DEBUG_sys ) ; then 1099 echo "IGCM_sys_GetDate_FichWork :" $@ 1100 fi 1357 IGCM_debug_PushStack "IGCM_sys_FichWork" $@ 1358 if ( $DEBUG_sys ) ; then 1359 echo "IGCM_sys_GetDate_FichWork :" $@ 1360 fi 1361 typeset dateF 1362 set +A dateF -- $( ls -l --full-time --time-style='+%Y%m%d%H%M%S' ${1} ) 1363 eval ${2}=${dateF[5]} 1364 1101 1365 # donne la date filesys d'un fichier sur la machine work 1102 1366 IGCM_debug_PopStack "IGCM_sys_FichWork" 1103 1367 } 1104 1368 … … 1109 1373 #D- 1110 1374 function IGCM_sys_GetDate_FichArchive { 1111 IGCM_debug_PushStack "IGCM_sys_FichArchive" $@ 1112 if ( $DEBUG_sys ) ; then 1113 echo "IGCM_sys_GetDate_FichArchive :" $@ 1114 fi 1115 IGCM_debug_PopStack "IGCM_sys_FichArchive" 1375 IGCM_debug_PushStack "IGCM_sys_FichArchive" $@ 1376 if ( $DEBUG_sys ) ; then 1377 echo "IGCM_sys_GetDate_FichArchive :" $@ 1378 fi 1379 typeset dateF 1380 set +A dateF -- $( ls -l --full-time --time-style='+%Y%m%d%H%M%S' ${1} ) 1381 eval ${2}=${dateF[5]} 1382 1383 IGCM_debug_PopStack "IGCM_sys_FichArchive" 1116 1384 } 1117 1385 … … 1120 1388 1121 1389 function IGCM_sys_rebuild { 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1390 IGCM_debug_PushStack "IGCM_sys_rebuild" -- $@ 1391 if ( $DEBUG_sys ) ; then 1392 echo "IGCM_sys_rebuild :" $@ 1393 fi 1394 /home/cont003/p86ipsl/SX8/bin/rebuild -f -o $@ 1395 if [ $? -gt 0 ] ; then 1396 echo "IGCM_sys_rebuild : erreur ${@}." 1397 IGCM_debug_Exit "rebuild" 1398 fi 1399 1400 IGCM_debug_PopStack "IGCM_sys_rebuild" 1133 1401 } 1134 1402 … … 1137 1405 1138 1406 function IGCM_sys_activ_variables { 1139 1140 1141 1142 1407 IGCM_debug_PushStack "IGCM_sys_activ_variables" 1408 if ( $DEBUG_sys ) ; then 1409 echo "IGCM_sys_activ_variables" 1410 fi 1143 1411 1144 1412 # -------------------------------------------------------------------- … … 1147 1415 1148 1416 #D-- MPISUSPEND 1149 1417 export MPISUSPEND=${MPISUSPEND:=OFF} 1150 1418 1151 1419 #D-- MPIPROGINF #other choices : ALL_DETAIL2 1152 1420 export MPIPROGINF=ALL 1153 1421 #D- activate ftrace (with -ftrace) 1154 1422 export F_FTRACE=YES 1155 1423 #D- communication information (with -ftrace) 1156 1424 export MPICOMMINF=DETAIL 1157 1425 1158 1426 # -------------------------------------------------------------------- … … 1161 1429 1162 1430 #D- max number of character/line in output job 1163 1431 export F_SYSLEN=5000 1164 1432 #D- number of error that can be admitted on the NEC 1165 1433 export F_ERRCNT=0 1166 1434 #D- global performance 1167 1435 export F_PROGINF=DETAIL 1168 1436 1169 1437 #D- I/O performance (FORTRAN I/O only not netCDF) 1170 1438 export F_FILEINF=${F_FILEINF:=NO} 1171 1439 #D- netCDF I/O performance 1172 1173 1174 1440 export NC_FILEINF=${NC_FILEINF:=NO} 1441 1442 IGCM_debug_PopStack "IGCM_sys_activ_variables" 1175 1443 } 1176 1444 … … 1179 1447 1180 1448 function IGCM_sys_desactiv_variables { 1181 1182 1183 1184 1449 IGCM_debug_PushStack "IGCM_sys_desactiv_variables" 1450 if ( $DEBUG_sys ) ; then 1451 echo "IGCM_sys_desactiv_variables" 1452 fi 1185 1453 # -------------------------------------------------------------------- 1186 1454 #D- MPI specifications … … 1188 1456 1189 1457 #D-- MPIPROGINF 1190 1458 export MPIPROGINF=NO 1191 1459 1192 1460 # -------------------------------------------------------------------- … … 1195 1463 1196 1464 #D- global performance 1197 1198 1199 1465 export F_PROGINF=NO 1466 1467 IGCM_debug_PopStack "IGCM_sys_desactiv_variables" 1200 1468 } 1201 1469 … … 1204 1472 1205 1473 function IGCM_sys_build_run_file { 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1474 IGCM_debug_PushStack "IGCM_sys_build_run_file" $@ 1475 if ( $DEBUG_sys ) ; then 1476 echo "IGCM_sys_build_run_file " $@ 1477 fi 1478 (( NUM_PROC_ATM = BATCH_NUM_PROC_TOT - 1 )) 1479 (( NUM_PROC_OASIS = BATCH_NUM_PROC_TOT - NUM_PROC_ATM )) 1480 (( NUM_PROC_OCE = BATCH_NUM_PROC_TOT - NUM_PROC_ATM )) 1481 1482 if [ $1 = MPI2 ]; then 1483 cat <<EOF > run_file 1216 1484 -p 1 -np 1 -e ./oasis 1217 1485 EOF 1218 1219 1220 1221 1222 1486 (( NUM_PROCESS = BATCH_NUM_PROC_TOT + 1 )) 1487 config_UserChoices_JobRunOptions='"-max_np ${NUM_PROCESS} -f"' 1488 1489 elif [ $1 = MPI1 ]; then 1490 cat <<EOF > run_file 1223 1491 -p $NUM_PROC_OASIS -e ./oasis 1224 1492 -p $NUM_PROC_ATM -e ./lmdz.x 1225 1493 -p $NUM_PROC_OCE -e ./opa.xx 1226 1494 EOF 1227 1228 fi 1229 1230 IGCM_debug_PopStack "IGCM_sys_build_run_file" 1231 1232 } 1495 fi 1496 IGCM_debug_PopStack "IGCM_sys_build_run_file" 1497 }
Note: See TracChangeset
for help on using the changeset viewer.