mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-12-22 12:47:54 +00:00
parallel: Test for bug #61894: Pack ssh code in eval protection.
This commit is contained in:
parent
5b325c60ba
commit
8e36c00344
|
@ -4,6 +4,8 @@
|
|||
|
||||
Quote of the month:
|
||||
|
||||
It's amazing how fast you can get with bash pipelines and GNU Parallel.
|
||||
-- Eric Pauley @EricPauley_
|
||||
|
||||
GNU parallel すごいな、シェルスクリプトを make -jX みたいにして並列
|
||||
に走らせたいときに超便利
|
||||
|
@ -18,13 +20,10 @@ Quote of the month:
|
|||
haberlo conocido antes :)
|
||||
-- Juan Sierra Pons @juasiepo
|
||||
|
||||
|
||||
|
||||
If I could only keep 5 GNU utils, parallel would make it to the list
|
||||
:)
|
||||
-- 5heikki@reddit
|
||||
|
||||
|
||||
Gnu Parallel: installed in every computer i have access to.
|
||||
-- raffaele messuti @atomotic@twitter
|
||||
|
||||
|
@ -34,7 +33,7 @@ Quote of the month:
|
|||
Deus salve o gnu parallel
|
||||
-- marcos @guv_Tuv@twitter
|
||||
|
||||
@a201
|
||||
@a
|
||||
4
|
||||
اليوم علمت بأداة تساعد على تشغيل أوامر الصدفة بشكل متوازي حسب عدد الأنوية الموجودة مما يجعلها أداة أساسية في عدة تنفيذ المهام.
|
||||
الأداة اسمها gnu parallel
|
||||
|
|
|
@ -254,37 +254,25 @@ from:tange@gnu.org
|
|||
to:parallel@gnu.org, bug-parallel@gnu.org
|
||||
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
|
||||
|
||||
Subject: GNU Parallel 20220222 ('Donetsk Luhansk') released
|
||||
Subject: GNU Parallel 20220322 ('<<>>') released [stable]
|
||||
|
||||
GNU Parallel 20220222 ('Donetsk Luhansk') has been released. It is available for download at: lbry://@GnuParallel:4
|
||||
GNU Parallel 20220322 ('<<>>') has been released. It is available for download at: lbry://@GnuParallel:4
|
||||
|
||||
This release has a major change in the remote code. This makes this release beta quality.
|
||||
No new functionality was introduced so this is a good candidate for a stable release.
|
||||
|
||||
Quote of the month:
|
||||
|
||||
I also prefer gnu parallel. Mainly because it makes embarrassingly
|
||||
parallel tasks embarrassingly easy to run on the command line.
|
||||
-- Vincent D. Warmerdam @fishnets88@twitter
|
||||
<<>>
|
||||
|
||||
New in this release:
|
||||
|
||||
* Encoding of remote commands has changed. This limits the length of remote commands to less than half. It also requires $REMOTE_TMPDIR to be writable.
|
||||
|
||||
* Time functions hh_mm_ss() hhmmss() hh_mm() hhmm() are now available for {= =}.
|
||||
|
||||
* parallel_options_map.pdf is a map showing which options other options relate to.
|
||||
|
||||
* {uniq} added to --plus to only run jobs with unique values.
|
||||
<<>>
|
||||
|
||||
* Bug fixes and man page updates: Many options now have a 'See also' section.
|
||||
|
||||
News about GNU Parallel:
|
||||
|
||||
* HPC at Noon - GNU Parallel u SLURM srun , 22 February 2022 https://kim.uni-hohenheim.de/en/96097?tx_ttnews%5Btt_news%5D=53919&cHash=985f4f4ac1a166d180d81f6e9be832a3
|
||||
|
||||
* linux 命令 -- parallel https://blog.csdn.net/qq_38197157/article/details/112596389
|
||||
|
||||
* Iterating Over Each Line of ls -l Output https://www.baeldung.com/linux/iterating-ls-l-output
|
||||
<<>>
|
||||
|
||||
Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html
|
||||
|
||||
|
@ -364,4 +352,4 @@ O. Tange (2011): GNU SQL - A Command Line Tool for Accessing Different Databases
|
|||
|
||||
= About GNU Niceload =
|
||||
|
||||
GNU niceload slows down a program when the computer load average (or other system activity) is above a certain limit. When the limit is reached the program will be suspended for some time. If the limit is a soft limit the program will be allowed to run for short amounts of time before being suspended again. If the limit is a hard limit the program will only be allowed to run when the system is below the limit.
|
||||
GNU niceload slows down a program when the computer load average (or other system activity) is above a certain limit. When the limit is reached the program will be suspended for some time. If the limit is a soft limit the program will be allowed to run for short amounts of time before being suspended again. If the limit is a hard limit the program will only be allowed to run when the system is below the limit.
|
||||
|
|
|
@ -385,7 +385,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20220222 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20220223 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -385,7 +385,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20220222 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20220223 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -385,7 +385,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20220222 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20220223 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -363,7 +363,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20220222 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20220223 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -365,7 +365,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20220222 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20220223 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -390,7 +390,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20220222 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20220223 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -355,7 +355,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20220222 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20220223 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
use strict;
|
||||
use Getopt::Long;
|
||||
$Global::progname="niceload";
|
||||
$Global::version = 20220222;
|
||||
$Global::version = 20220223;
|
||||
Getopt::Long::Configure("bundling","require_order");
|
||||
get_options_from_array(\@ARGV) || die_usage();
|
||||
if($opt::version) {
|
||||
|
|
|
@ -2313,7 +2313,7 @@ sub check_invalid_option_combinations() {
|
|||
|
||||
sub init_globals() {
|
||||
# Defaults:
|
||||
$Global::version = 20220222;
|
||||
$Global::version = 20220223;
|
||||
$Global::progname = 'parallel';
|
||||
$::name = "GNU Parallel";
|
||||
$Global::infinity = 2**31;
|
||||
|
|
|
@ -205,7 +205,7 @@ Sequence number of the job to run.
|
|||
This replacement string will be replaced by the sequence number of the
|
||||
job being run. It contains the same number as $PARALLEL_SEQ.
|
||||
|
||||
See also: B<{#}> B<--seqreplace>
|
||||
See also: B<{}> B<--seqreplace>
|
||||
|
||||
|
||||
=item B<{%}>
|
||||
|
|
|
@ -122,7 +122,7 @@ GetOptions(
|
|||
"help" => \$opt::dummy,
|
||||
) || exit(255);
|
||||
$Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1];
|
||||
$Global::version = 20220222;
|
||||
$Global::version = 20220223;
|
||||
if($opt::version) { version(); exit 0; }
|
||||
@Global::sortoptions = grep { ! /^-D$/ }
|
||||
shell_quote(@ARGV_before[0..($#ARGV_before-$#ARGV-1)]);
|
||||
|
|
|
@ -1,5 +1,26 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
# Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free
|
||||
# Software Foundation, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, see <https://www.gnu.org/licenses/>
|
||||
# or write to the Free Software Foundation, Inc., 51 Franklin St,
|
||||
# Fifth Floor, Boston, MA 02110-1301 USA
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021-2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# Convert .pod file containing:
|
||||
#
|
||||
# =item --option
|
||||
|
|
2
src/sql
2
src/sql
|
@ -600,7 +600,7 @@ $Global::Initfile && unlink $Global::Initfile;
|
|||
exit ($err);
|
||||
|
||||
sub parse_options {
|
||||
$Global::version = 20220222;
|
||||
$Global::version = 20220223;
|
||||
$Global::progname = 'sql';
|
||||
|
||||
# This must be done first as this may exec myself
|
||||
|
|
|
@ -18,6 +18,15 @@ echo TODO
|
|||
|
||||
EOF
|
||||
|
||||
par_ssh_ssh() {
|
||||
echo '### bug #61894: Pack ssh code in eval protection'
|
||||
echo Unquoted ssh should work
|
||||
parallel --ssh 'ssh lo ssh' -S lo 'hostname;echo' ::: OK
|
||||
parallel --ssh 'eval ssh lo ssh' -S lo 'hostname;echo' ::: OK
|
||||
parallel --ssh 'eval ssh lo eval ssh' -S lo 'hostname;echo' ::: OK
|
||||
parallel --ssh 'sshpass ssh bash@lo eval ssh' -S csh@lo 'hostname;echo' ::: OK
|
||||
}
|
||||
|
||||
par_stop_if_no_hosts_left() {
|
||||
echo '### Stop if all hosts are filtered and there are no hosts left to run on'
|
||||
stdout parallel --filter-hosts -S no-such.host echo ::: 1
|
||||
|
|
|
@ -83,6 +83,16 @@ par_remote_nice 5
|
|||
par_ssh ### use --ssh
|
||||
par_ssh Run through BARSSH?
|
||||
par_ssh BARSSH
|
||||
par_ssh_ssh ### bug #61894: Pack ssh code in eval protection
|
||||
par_ssh_ssh Unquoted ssh should work
|
||||
par_ssh_ssh aspire
|
||||
par_ssh_ssh OK
|
||||
par_ssh_ssh aspire
|
||||
par_ssh_ssh OK
|
||||
par_ssh_ssh aspire
|
||||
par_ssh_ssh OK
|
||||
par_ssh_ssh aspire
|
||||
par_ssh_ssh OK
|
||||
par_stop_if_no_hosts_left ### Stop if all hosts are filtered and there are no hosts left to run on
|
||||
par_stop_if_no_hosts_left parallel: Warning: Removed no-such.host.
|
||||
par_stop_if_no_hosts_left parallel: Error: Cannot run any jobs.
|
||||
|
|
Loading…
Reference in a new issue