Cung cấp biến môi trường thông qua bsub (Nền tảng LSF)


1

Tôi dường như không thể chuyển các biến môi trường cho các tập lệnh được gửi đến bộ lập lịch cụm bsub. Nó hoạt động tốt khi tôi gửi các lệnh sử dụng trực tiếp các biến môi trường này, nhưng các biến môi trường này không thể được sử dụng trong các tập lệnh tiếp theo. Tại sao lại như vậy, và làm thế nào tôi có thể sửa nó?

Đây là một ví dụ đơn giản mà tôi đã cố chuyển qua x=1một tập lệnh:

me@cluster:~[407]$ bsub -I -tty -env 'x=1' 'echo .$x.'
Info: No jobname given, set to: Job_with_no_name
Info: No output file given, set to: output_%J_%I.txt
Info: No memory limit given, set to: 512MB
Info: No runtime limit given, set to: 15min
Job <35590315> is submitted to queue <normal>.
<<Waiting for dispatch ...>>
<<Starting on linuxbmc0243>>
.1.

me@cluster:~[408]$ echo 'echo .$x.' > myechox

me@cluster:~[409]$ more myechox
echo .$x.

me@cluster:~[410]$ chmod +x myechox

me@cluster:~[411]$ bsub -I -tty -env 'x=1' myechox
Info: No jobname given, set to: Job_with_no_name
Info: No output file given, set to: output_%J_%I.txt
Info: No memory limit given, set to: 512MB
Info: No runtime limit given, set to: 15min
Job <35590318> is submitted to queue <normal>.
<<Waiting for dispatch ...>>
<<Starting on linuxbmc1279>>
..

me@cluster:~[412]$ bsub -I -tty -env 'x=1' 'export x;myechox'
Info: No jobname given, set to: Job_with_no_name
Info: No output file given, set to: output_%J_%I.txt
Info: No memory limit given, set to: 512MB
Info: No runtime limit given, set to: 15min
Job <35590340> is submitted to queue <normal>.
<<Waiting for dispatch ...>>
<<Starting on linuxbmc1045>>
..

Cập nhật : Công việc này:

me@cluster:~[456]$ bsub -I -tty -env 'x=1' 'export x=$x;myechox'
Info: No jobname given, set to: Job_with_no_name
Info: No output file given, set to: output_%J_%I.txt
Info: No memory limit given, set to: 512MB
Info: No runtime limit given, set to: 15min
Job <35609253> is submitted to queue <normal>.
<<Waiting for dispatch ...>>
<<Starting on linuxbmc0975>>
.1.

Trong khi đó, tôi cũng đã phát hiện ra rằng bsubthích được sử dụng bsub < scriptfilehơn là bsub scriptfile; điều này dường như được yêu cầu để cho phép phân tích cú pháp các tùy chọn nhúng (sử dụng #BSUB) và nó cũng giải thích tại sao các biến chỉ được đặt cục bộ (vì không có tập lệnh con nào được gọi).

Tuy nhiên, bây giờ tôi cũng đã thử điều này, điều đáng ngạc nhiên là không hoạt động:

me@cluster:~[457]$ bsub -I -tty -env 'x=1' < myechox
Info: No jobname given, set to: Job_with_no_name
Info: No output file given, set to: output_%J_%I.txt
Info: No memory limit given, set to: 512MB
Info: No runtime limit given, set to: 15min
Job <35609459> is submitted to queue <normal>.
<<Waiting for dispatch ...>>
<<Starting on linuxbmc1140>>
..

Cập nhật 2 : Tôi đã thử exporting xtrước, có tác dụng tương tự như khi sử dụng -env 'x=1':

me@cluster:~[458]$ export x=1

me@cluster:~[460]$ bsub -I -tty 'echo .$x.'
Info: No jobname given, set to: Job_with_no_name
Info: No output file given, set to: output_%J_%I.txt
Info: No memory limit given, set to: 512MB
Info: No runtime limit given, set to: 15min
Job <35610151> is submitted to queue <normal>.
<<Waiting for dispatch ...>>
<<Starting on linuxbmc1140>>
.1.

me@cluster:~[459]$ bsub -I -tty < myechox
Info: No jobname given, set to: Job_with_no_name
Info: No output file given, set to: output_%J_%I.txt
Info: No memory limit given, set to: 512MB
Info: No runtime limit given, set to: 15min
Job <35609990> is submitted to queue <normal>.
<<Waiting for dispatch ...>>
<<Starting on linuxbmc1140>>
..

Cập nhật 3 : Điều này, một lần nữa, hoạt động, mà tôi coi là một câu trả lời cho câu hỏi của tôi:

me@cluster:~[571]$ (echo export x=$x && cat myechox) | bsub -I -tty
Info: No jobname given, set to: Job_with_no_name
Info: No output file given, set to: output_%J_%I.txt
Info: No memory limit given, set to: 512MB
Info: No runtime limit given, set to: 15min
Job <35641024> is submitted to queue <normal>.
<<Waiting for dispatch ...>>
<<Starting on linuxbmc1045>>
.1.

Bạn đã thử đặt: export x = 1 rồi thực thi tập lệnh chưa?
Romeo Ninov

@RomeoNinov: thậm chí tốt hơn: Tôi đã thử export x=$x;myechox, và điều này cũng hoạt động. Tôi tự hỏi nếu điều này được dự kiến ​​sẽ được thực hiện như vậy ...
bers

Bers, vâng, nếu bạn xuất biến trong shell, nó được điền vào tất cả các trường hợp con bạn bắt đầu sau khi xuất (đó là IMHO những gì bạn cần :))
Romeo Ninov

@RomeoNinov Được rồi, tôi hiểu rồi. Trong khi đó, tôi đã phát hiện ra rằng bsubthích được sử dụng bsub < scriptfilehơn là bsub scriptfile; điều này dường như được yêu cầu để cho phép phân tích cú pháp các tùy chọn nhúng (sử dụng #BSUB). Vì vậy, trong khi tôi cần câu hỏi của mình, câu hỏi ban đầu vẫn không may;)
bers
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.