4 myscript
=$
(cat <<'_EOF'
6 parallel --embed | tac | perl -pe '
7 /^parallel/ and not $seen++ and s{^}{
9 parset a,b,c echo ::: ParsetOK ParsetOK ParsetOK
10 env_parallel echo ::: env_parallel_OK
11 env_parallel --env myvar echo {} --env \\\$myvar ::: env_parallel
13 parallel echo ::: parallel_OK
14 PATH=/usr/sbin:/usr/bin:/sbin:/bin
15 # Do not look for parallel in /usr/local/bin
16 #. \`which env_parallel.ash\`
18 ' | tac > parallel-embed
19 chmod +x parallel-embed
24 ssh ash@lo
"$myscript"
28 myscript
=$
(cat <<'_EOF'
30 parallel --embed | tac | perl -pe '
31 /^parallel/ and not $seen++ and s{^}{
33 parset a echo ::: ParsetOK ParsetOK ParsetOK
34 env_parallel echo ::: env_parallel_OK
35 env_parallel --env myvar echo {} --env \\\$myvar ::: env_parallel
37 parallel echo ::: parallel_OK
38 PATH=/usr/sbin:/usr/bin:/sbin:/bin
39 # Do not look for parallel in /usr/local/bin
40 #. \`which env_parallel.bash\`
42 ' | tac > parallel-embed
43 chmod +x parallel-embed
48 ssh bash@lo
"$myscript"
60 myscript
=$
(cat <<'_EOF'
62 parallel --embed | tac | perl -pe '
63 /^parallel/ and not $seen++ and s{^}{
65 parset a echo ::: ParsetOK ParsetOK ParsetOK
66 env_parallel echo ::: env_parallel_OK
67 env_parallel --env myvar echo {} --env \\\$myvar ::: env_parallel
69 parallel echo ::: parallel_OK
70 PATH=/usr/sbin:/usr/bin:/sbin:/bin
71 # Do not look for parallel in /usr/local/bin
72 #. \`which env_parallel.ksh\`
74 ' | tac > parallel-embed
75 chmod +x parallel-embed
80 ssh ksh@lo
"$myscript"
84 myscript
=$
(cat <<'_EOF'
86 parallel --embed | tac | perl -pe '
87 /^parallel/ and not $seen++ and s{^}{
89 parset a,b,c echo ::: ParsetOK ParsetOK ParsetOK
90 env_parallel echo ::: env_parallel_OK
91 env_parallel --env myvar echo {} --env \\\$myvar ::: env_parallel
93 parallel echo ::: parallel_OK
94 PATH=/usr/sbin:/usr/bin:/sbin:/bin
95 # Do not look for parallel in /usr/local/bin
96 #. \`which env_parallel.sh\`
98 ' | tac > parallel-embed
99 chmod +x parallel-embed
104 ssh sh@lo
"$myscript"
112 myscript
=$
(cat <<'_EOF'
114 parallel --embed | tac | perl -pe '
115 /^parallel/ and not $seen++ and s{^}{
117 parset a echo ::: ParsetOK ParsetOK ParsetOK
118 env_parallel echo ::: env_parallel_OK
119 env_parallel --env myvar echo {} --env \\\$myvar ::: env_parallel
121 parallel echo ::: parallel_OK
122 PATH=/usr/sbin:/usr/bin:/sbin:/bin
123 # Do not look for parallel in /usr/local/bin
125 ' | tac > parallel-embed
126 chmod +x parallel-embed
131 ssh zsh@lo
"$myscript" 2>&1 |
135 par_propagate_env
() {
136 echo '### bug #41805: Idea: propagate --env for parallel --number-of-cores'
138 FOO
=test_zsh parallel
--env FOO
,HOME
-S zsh@lo
-N0 env
::: "" |
sort|
egrep 'FOO|^HOME'
139 echo '** test_zsh_filter'
140 FOO
=test_zsh_filter parallel
--filter-hosts --env FOO
,HOME
-S zsh@lo
-N0 env
::: "" |
sort|
egrep 'FOO|^HOME'
142 FOO
=test_csh parallel
--env FOO
,HOME
-S csh@lo
-N0 env
::: "" |
sort|
egrep 'FOO|^HOME'
143 echo '** test_csh_filter'
144 FOO
=test_csh_filter parallel
--filter-hosts --env FOO
,HOME
-S csh@lo
-N0 env
::: "" |
sort|
egrep 'FOO|^HOME'
145 echo '** bug #41805 done'
148 par_env_parallel_big_env
() {
149 echo '### bug #54128: command too long when exporting big env'
150 .
`which env_parallel.bash`
151 a
=`rand | perl -pe 's/\0//g'| head -c 70000`
152 env_parallel
-Slo echo should not
::: fail
2>&1
153 a
=`rand | perl -pe 's/\0//g'| head -c 80000`
154 env_parallel
-Slo echo should
::: fail
2>/dev
/null ||
echo OK
157 par_no_route_to_host
() {
158 echo '### no route to host with | and -j0 causes inf loop'
159 # Broken in parallel-20121122 .. parallel-20181022
160 # parallel-20181022 -j0 -S 185.75.195.218 echo ::: {1..11}
162 seq 11 | stdout parallel
-j0 -S $1 echo
164 export -f via_parallel
172 ip
='$(($RANDOM%256)).$(($RANDOM%256)).$(($RANDOM%256)).$(($RANDOM%256))'
173 seq 10000 | parallel
-N0 echo $ip
176 # See if the hosts fail fast
178 stdout parallel
--timeout 2 -j5 ssh -o PasswordAuthentication
=no
{} echo |
179 perl
-ne 's/ssh:.* host (\d+\.\d+\.\d+\.\d+) .* No route .*/$1/ and print; $|=1'
183 # Cache a list of hosts that fail fast with 'No route'
184 # Filter the list 5 times to make sure to get good hosts
186 export -f filterhosts
188 findhosts | filterhosts | filterhosts | filterhosts |
189 filterhosts | filterhosts | head > /tmp/filtered.$$
190 mv /tmp/filtered.$$ /tmp/filtered.hosts
194 # We just need one of each to complete
195 stdout parallel
--halt now
,done=1 -j0 raw
:::: /tmp
/filtered.hosts
196 stdout parallel
--halt now
,done=1 -j0 via_parallel
:::: /tmp
/filtered.hosts
197 ) | perl
-pe 's/(\d+\.\d+\.\d+\.\d+)/i.p.n.r/' | puniq
200 par_PARALLEL_SSHLOGIN_SSHHOST
() {
201 echo '### bug #56554: Introduce $PARALLEL_SSHLOGIN $PARALLEL_SSHHOST'
202 (echo lo
; echo zsh@lo
; echo /usr
/bin
/ssh csh@lo
; echo 1/sh@lo
;
203 echo 1//usr
/bin
/ssh tcsh@lo
) |
204 parallel
-k --tag --nonall -S - 'whoami;echo $PARALLEL_SSHLOGIN $PARALLEL_SSHHOST' |
208 export -f $
(compgen
-A function |
grep par_
)
209 #compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1'
210 #compgen -A function | grep par_ | sort |
211 compgen
-A function |
grep par_ | LANG
=C
sort -ri |
212 # parallel --joblog /tmp/jl-`basename $0` --delay $D -j$P --tag -k '{} 2>&1'
213 parallel
--joblog /tmp
/jl-
`basename $0` --delay 0.1 -j200% --tag -k '{} 2>&1' |
214 perl
-pe 's/line \d\d\d+:/line XXX:/' |
215 perl
-pe 's/\[\d\d\d+\]:/[XXX]:/'