Compare commits

...

3 commits

26 changed files with 493 additions and 109 deletions

15
NEWS
View file

@ -2,11 +2,24 @@
New in this release:
* No new features. This is a candidate for a stable release.
* Bug fixes and man page updates.
News about GNU Parallel:
* <<>>
* Separate arguments with a custom separator in GNU Parallel
https://boxofcuriosities.co.uk/post/separate-arguments-with-a-custom-separator-in-gnu-parallel
* GNU parallel is underrated
https://amontalenti.com/2021/11/10/parallel
* Unlocking the Power of Supercomputers: My HPC Adventure with 2800
Cores and GNU Parallel
https://augalip.com/2024/03/10/unlocking-the-power-of-supercomputers-my-hpc-adventure-with-2800-cores-and-gnu-parallel/
* Converting WebP Images to PNG Using parallel and dwebp
https://bytefreaks.net/gnulinux/bash/converting-webp-images-to-png-using-parallel-and-dwebp
20240922

24
README
View file

@ -57,11 +57,11 @@ document.
Full installation of GNU Parallel is as simple as:
wget https://ftpmirror.gnu.org/parallel/parallel-20240922.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20240922.tar.bz2.sig
gpg parallel-20240922.tar.bz2.sig
bzip2 -dc parallel-20240922.tar.bz2 | tar xvf -
cd parallel-20240922
wget https://ftpmirror.gnu.org/parallel/parallel-20241022.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20241022.tar.bz2.sig
gpg parallel-20241022.tar.bz2.sig
bzip2 -dc parallel-20241022.tar.bz2 | tar xvf -
cd parallel-20241022
./configure && make && sudo make install
@ -70,11 +70,11 @@ Full installation of GNU Parallel is as simple as:
If you are not root you can add ~/bin to your path and install in
~/bin and ~/share:
wget https://ftpmirror.gnu.org/parallel/parallel-20240922.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20240922.tar.bz2.sig
gpg parallel-20240922.tar.bz2.sig
bzip2 -dc parallel-20240922.tar.bz2 | tar xvf -
cd parallel-20240922
wget https://ftpmirror.gnu.org/parallel/parallel-20241022.tar.bz2
wget https://ftpmirror.gnu.org/parallel/parallel-20241022.tar.bz2.sig
gpg parallel-20241022.tar.bz2.sig
bzip2 -dc parallel-20241022.tar.bz2 | tar xvf -
cd parallel-20241022
./configure --prefix=$HOME && make && make install
Or if your system lacks 'make' you can simply copy src/parallel
@ -122,8 +122,8 @@ will love you for it.
When using programs that use GNU Parallel to process data for
publication please cite:
Tange, O. (2024, September 22). GNU Parallel 20240922 ('Gold Apollo AR924').
Zenodo. https://doi.org/10.5281/zenodo.13826092
Tange, O. (2024, October 22). GNU Parallel 20241022 ('Sinwar Nasrallah').
Zenodo. https://doi.org/10.5281/zenodo.13957646
Copyright (C) 2007-2022 Ole Tange, http://ole.tange.dk and Free
Software Foundation, Inc.

20
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for parallel 20240922.
# Generated by GNU Autoconf 2.71 for parallel 20241022.
#
# Report bugs to <bug-parallel@gnu.org>.
#
@ -610,8 +610,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='parallel'
PACKAGE_TARNAME='parallel'
PACKAGE_VERSION='20240922'
PACKAGE_STRING='parallel 20240922'
PACKAGE_VERSION='20241022'
PACKAGE_STRING='parallel 20241022'
PACKAGE_BUGREPORT='bug-parallel@gnu.org'
PACKAGE_URL=''
@ -1246,7 +1246,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures parallel 20240922 to adapt to many kinds of systems.
\`configure' configures parallel 20241022 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1313,7 +1313,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of parallel 20240922:";;
short | recursive ) echo "Configuration of parallel 20241022:";;
esac
cat <<\_ACEOF
@ -1390,7 +1390,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
parallel configure 20240922
parallel configure 20241022
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@ -1427,7 +1427,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by parallel $as_me 20240922, which was
It was created by parallel $as_me 20241022, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@ -2379,7 +2379,7 @@ fi
# Define the identity of the package.
PACKAGE='parallel'
VERSION='20240922'
VERSION='20241022'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@ -3026,7 +3026,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by parallel $as_me 20240922, which was
This file was extended by parallel $as_me 20241022, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -3090,7 +3090,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
parallel config.status 20240922
parallel config.status 20241022
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"

View file

@ -1,4 +1,4 @@
AC_INIT([parallel],[20240922],[bug-parallel@gnu.org])
AC_INIT([parallel],[20241022],[bug-parallel@gnu.org])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([

View file

@ -134,9 +134,6 @@ write a haiku about gnu parallel and the :::+ option
Using [GNU Parallel is] super easy if you use xargs, and it is magic for making things multi-process. Then adding in the ssh magic it can do it is an incredible tool that is completely underutilized.
-- Ancients @Ancients@twitter
GNU Parallel is one of the most helpful tools I've been using recently, and it's just something like: parallel -j4 'gzip {}' ::: folder/*.csv
-- Milton Pividori @miltondp@twitter
This is a fantastic tool, and I wish I had upgraded from xargs years ago!
-- Stuart Anderson
@ -224,6 +221,9 @@ https://negfeedback.blogspot.com/2020/05/indispensable-command-line-tools.html
=== Used ===
GNU Parallel is one of the most helpful tools I've been using recently, and it's just something like: parallel -j4 'gzip {}' ::: folder/*.csv
-- Milton Pividori @miltondp@twitter
Recently executed a flawless live data migration of ~2.4pb using GNU parallel for scale and bash scripts.
-- @mechanicker@twitter Dhruva

View file

@ -195,6 +195,7 @@ git branch premaster
Add tar.bz2 [Start upload] and [Publish].
== Update documentation ==
Update version number + 1
@ -217,6 +218,7 @@ Modified => alpha
make testurls
== Check REUSE ==
make reuse
@ -226,7 +228,7 @@ https://api.reuse.software/status/git.savannah.gnu.org/git/parallel
== Update Savannah ==
file:///home/tange/privat/parallel/doc/release_new_version
perl -ne '/^Subject:/..0 and print' < doc/release_new_version | clipboard
Content from release mail:
@ -236,10 +238,6 @@ Test URLs.
https://savannah.gnu.org/news/approve.php?group=parallel
== Update Freshmeat ==
// FreeCode is dying
http://freshmeat.net/projects/parallel/releases/new
== Update Mastodon Twitter ==
@ -252,6 +250,7 @@ See the intro videos pi.dk/1
GNU Parallel - for people who live life in the parallel lane.
== Send announce ==
http://groups.google.com/group/comp.unix.shell/post
@ -268,25 +267,30 @@ from:tange@gnu.org
to:parallel@gnu.org, bug-parallel@gnu.org
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
Subject: GNU Parallel 20240922 ('Gold Apollo AR924') released
Subject: GNU Parallel 20241022 ('Sinwar Nasrallah') released
GNU Parallel 20240922 ('Gold Apollo AR924') has been released. It is available for download at: lbry://@GnuParallel:4
GNU Parallel 20241022 ('Sinwar Nasrallah') has been released. It is available for download at: lbry://@GnuParallel:4
Quote of the month:
Recently executed a flawless live data migration of ~2.4pb using GNU parallel for scale and bash scripts.
-- @mechanicker@twitter Dhruva
GNU Parallel is one of the most helpful tools I've been using recently, and it's just something like: parallel -j4 'gzip {}' ::: folder/*.csv
-- Milton Pividori @miltondp@twitter
New in this release:
* --fast disables a lot of functionality to speed up running jobs.
* No new features. This is a candidate for a stable release.
* Bug fixes and man page updates.
News about GNU Parallel:
* Job requiring GNU Parallel knowledge
https://www.capgemini.com/ca-en/jobs/Id6D4pEBZ6aB2WPS2aAJ/systems-engineer/
* Separate arguments with a custom separator in GNU Parallel https://boxofcuriosities.co.uk/post/separate-arguments-with-a-custom-separator-in-gnu-parallel
* GNU parallel is underrated https://amontalenti.com/2021/11/10/parallel
* Unlocking the Power of Supercomputers: My HPC Adventure with 2800 Cores and GNU Parallel https://augalip.com/2024/03/10/unlocking-the-power-of-supercomputers-my-hpc-adventure-with-2800-cores-and-gnu-parallel/
* Converting WebP Images to PNG Using parallel and dwebp https://bytefreaks.net/gnulinux/bash/converting-webp-images-to-png-using-parallel-and-dwebp
GNU Parallel - For people who live life in the parallel lane.

View file

@ -1,9 +1,10 @@
<directory name="parallel" rev="400" vrev="9" srcmd5="0a74278ca0d9d295fddd6ce59053a55d">
<directory name="parallel" rev="402" vrev="3" srcmd5="eabde6986e84a2ee89d3573226212c2b">
<entry name="Makefile" md5="d62bf3bdf277f9787ce915e6d1309317" size="1254" mtime="1727031498" />
<entry name="PKGBUILD" md5="5de38e88564fd456a4a955e1fd7a9e99" size="795" mtime="1727031498" />
<entry name="parallel-20240922.tar.bz2" md5="ede9c532b8a381cca11b8756b6f45146" size="2675527" mtime="1727031499" />
<entry name="parallel-20240922.tar.bz2.sig" md5="03e191a290803ab56fa983b6bf3f8f34" size="2080" mtime="1727031499" />
<entry name="parallel.spec" md5="c08379d0ce10a09a1b00a76ecdd2108c" size="6224" mtime="1727029032" />
<entry name="parallel_20240922.dsc" md5="ea350c690a20c6f0b8f735dd895f0e6c" size="557" mtime="1727030980" />
<entry name="parallel_20240922.tar.gz" md5="b07dcee6799cb75f34ec91683d32f85c" size="2917962" mtime="1727030981" />
<entry name="PKGBUILD" md5="d0637068b5eb4d647b3e281a32c4a383" size="795" mtime="1729438421" />
<entry name="parallel-20241022.tar.bz2" md5="d6b236cd452959c5f8e1740f9d6bd52f" size="2677432" mtime="1729438421" />
<entry name="parallel-20241022.tar.bz2.sig" md5="310b1d88f6413d6f3126be2eb55514ba" size="2080" mtime="1729438421" />
<entry name="parallel.spec" md5="f723f1c49a4f85e96ee2cd0bbf668e77" size="6224" mtime="1729437802" />
<entry name="parallel_20240922.tar.gz" md5="e0845f75badfde97790129aa5b793563" size="2917995" mtime="1729437803" />
<entry name="parallel_20241022.dsc" md5="3f822685e8ab5c249191f2afad054250" size="557" mtime="1729438422" />
<entry name="parallel_20241022.tar.gz" md5="c4c614919c48a7f9718c6de7e00ae681" size="2918710" mtime="1729438422" />
</directory>

View file

@ -1,7 +1,7 @@
Summary: Shell tool for executing jobs in parallel
Name: parallel
Version: 20240922
Version: 20241022
Release: 2.1
License: GPL-3.0-or-later
Group: Productivity/File utilities

View file

@ -601,7 +601,7 @@ _parset_main() {
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
echo "parset 20240922 (GNU parallel `parallel --minversion 1`)"
echo "parset 20241022 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2024 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>"

View file

@ -605,7 +605,7 @@ _parset_main() {
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
echo "parset 20240922 (GNU parallel `parallel --minversion 1`)"
echo "parset 20241022 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2024 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>"

View file

@ -601,7 +601,7 @@ _parset_main() {
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
echo "parset 20240922 (GNU parallel `parallel --minversion 1`)"
echo "parset 20241022 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2024 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>"

View file

@ -601,7 +601,7 @@ _parset_main() {
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
echo "parset 20240922 (GNU parallel `parallel --minversion 1`)"
echo "parset 20241022 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2024 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>"

View file

@ -570,7 +570,7 @@ _parset_main() {
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
echo "parset 20240922 (GNU parallel `parallel --minversion 1`)"
echo "parset 20241022 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2024 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>"

View file

@ -601,7 +601,7 @@ _parset_main() {
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
echo "parset 20240922 (GNU parallel `parallel --minversion 1`)"
echo "parset 20241022 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2024 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>"

View file

@ -601,7 +601,7 @@ _parset_main() {
fi
if [ "$_parset_NAME" = "--version" ] ; then
# shellcheck disable=SC2006
echo "parset 20240922 (GNU parallel `parallel --minversion 1`)"
echo "parset 20241022 (GNU parallel `parallel --minversion 1`)"
echo "Copyright (C) 2007-2024 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>"

View file

@ -26,7 +26,7 @@
use strict;
use Getopt::Long;
$Global::progname="niceload";
$Global::version = 20240922;
$Global::version = 20241022;
Getopt::Long::Configure("bundling","require_order");
get_options_from_array(\@ARGV) || die_usage();
if($opt::version) {

View file

@ -2888,7 +2888,7 @@ sub check_invalid_option_combinations() {
sub init_globals() {
# Defaults:
$Global::version = 20240922;
$Global::version = 20241022;
$Global::progname = 'parallel';
$::name = "GNU Parallel";
$Global::infinity = 2**31;
@ -5946,8 +5946,8 @@ sub usage() {
"If you use programs that use GNU Parallel to process data for an article in a",
"scientific publication, please cite:",
"",
" Tange, O. (2024, September 22). GNU Parallel 20240922 ('Gold Apollo AR924').",
" Zenodo. https://doi.org/10.5281/zenodo.13826092",
" Tange, O. (2024, October 22). GNU Parallel 20241022 ('Sinwar Nasrallah').",
" Zenodo. https://doi.org/10.5281/zenodo.13957646",
"",
# Before changing these lines, please read
# https://www.gnu.org/software/parallel/parallel_design.html#citation-notice
@ -5979,8 +5979,8 @@ sub citation_notice() {
"If you use programs that use GNU Parallel to process data for an article in a",
"scientific publication, please cite:",
"",
" Tange, O. (2024, September 22). GNU Parallel 20240922 ('Gold Apollo AR924').",
" Zenodo. https://doi.org/10.5281/zenodo.13826092",
" Tange, O. (2024, October 22). GNU Parallel 20241022 ('Sinwar Nasrallah').",
" Zenodo. https://doi.org/10.5281/zenodo.13957646",
"",
# Before changing these line, please read
# https://www.gnu.org/software/parallel/parallel_design.html#citation-notice and
@ -6106,20 +6106,20 @@ sub citation() {
"If you use programs that use GNU Parallel to process data for an article in a",
"scientific publication, please cite:",
"",
"\@software{tange_2024_13826092,",
"\@software{tange_2024_13957646,",
" author = {Tange, Ole},",
" title = {GNU Parallel 20240922 ('Gold Apollo AR924')},",
" month = Sep,",
" title = {GNU Parallel 20241022 ('Sinwar Nasrallah')},",
" month = Oct,",
" year = 2024,",
" note = {{GNU Parallel is a general parallelizer to run",
" multiple serial command line programs in parallel",
" without changing them.}},",
" publisher = {Zenodo},",
" doi = {10.5281/zenodo.13826092},",
" url = {https://doi.org/10.5281/zenodo.13826092}",
" doi = {10.5281/zenodo.13957646},",
" url = {https://doi.org/10.5281/zenodo.13957646}",
"}",
"",
"(Feel free to use \\nocite{tange_2024_13826092})",
"(Feel free to use \\nocite{tange_2024_13957646})",
"",
# Before changing these lines, please read
# https://www.gnu.org/software/parallel/parallel_design.html#citation-notice and
@ -7376,26 +7376,90 @@ sub new($$) {
my $local;
my $string;
# SSHLogins can have these formats:
# @grp+grp/ncpu//usr/bin/ssh user@server
# ncpu//usr/bin/ssh user@server
# /usr/bin/ssh user@server
# user@server
# ncpu/user@server
# @grp+grp/user@server
# above with: user:password@server
# above with: user@server:port
# So:
# [@grp+grp][ncpu/][ssh command ][[user][:password]@][server[:port]]
# @grp1+grp2/ => use only servers in @grp1+grp2
# [@grp+grp/][ncpu/][ssh command ][[user][:password]@][host[:port]]
#
# Here most combinations are generated:
# grp=grp1+grp2
# ncpu=4
# ssh=/usr/bin/ssh
# user=user
# pass=pass
# host=host
# port=port
# parallel -k echo {1}{2}{3}{4}{5}{=1'$_ = ($arg[4]||$arg[5]) ? "\@" : ""' =}$host{6} ::: '' @$grp/ ::: '' $ncpu/ ::: '' $ssh' ' ::: '' $user ::: '' :$pass ::: '' :$port
# host
# host:port
# :pass@host
# :pass@host:port
# user@host
# user@host:port
# user:pass@host
# user:pass@host:port
# /usr/bin/ssh host
# /usr/bin/ssh host:port
# /usr/bin/ssh :pass@host
# /usr/bin/ssh :pass@host:port
# /usr/bin/ssh user@host
# /usr/bin/ssh user@host:port
# /usr/bin/ssh user:pass@host
# /usr/bin/ssh user:pass@host:port
# ncpu/host
# ncpu/host:port
# ncpu/:pass@host
# ncpu/:pass@host:port
# ncpu/user@host
# ncpu/user@host:port
# ncpu/user:pass@host
# ncpu/user:pass@host:port
# ncpu//usr/bin/ssh host
# ncpu//usr/bin/ssh host:port
# ncpu//usr/bin/ssh :pass@host
# ncpu//usr/bin/ssh :pass@host:port
# ncpu//usr/bin/ssh user@host
# ncpu//usr/bin/ssh user@host:port
# ncpu//usr/bin/ssh user:pass@host
# ncpu//usr/bin/ssh user:pass@host:port
# @grp1+grp2/host
# @grp1+grp2/host:port
# @grp1+grp2/:pass@host
# @grp1+grp2/:pass@host:port
# @grp1+grp2/user@host
# @grp1+grp2/user@host:port
# @grp1+grp2/user:pass@host
# @grp1+grp2/user:pass@host:port
# @grp1+grp2//usr/bin/ssh host
# @grp1+grp2//usr/bin/ssh host:port
# @grp1+grp2//usr/bin/ssh :pass@host
# @grp1+grp2//usr/bin/ssh :pass@host:port
# @grp1+grp2//usr/bin/ssh user@host
# @grp1+grp2//usr/bin/ssh user@host:port
# @grp1+grp2//usr/bin/ssh user:pass@host
# @grp1+grp2//usr/bin/ssh user:pass@host:port
# @grp1+grp2/ncpu/host
# @grp1+grp2/ncpu/host:port
# @grp1+grp2/ncpu/:pass@host
# @grp1+grp2/ncpu/:pass@host:port
# @grp1+grp2/ncpu/user@host
# @grp1+grp2/ncpu/user@host:port
# @grp1+grp2/ncpu/user:pass@host
# @grp1+grp2/ncpu/user:pass@host:port
# @grp1+grp2/ncpu//usr/bin/ssh host
# @grp1+grp2/ncpu//usr/bin/ssh host:port
# @grp1+grp2/ncpu//usr/bin/ssh :pass@host
# @grp1+grp2/ncpu//usr/bin/ssh :pass@host:port
# @grp1+grp2/ncpu//usr/bin/ssh user@host
# @grp1+grp2/ncpu//usr/bin/ssh user@host:port
# @grp1+grp2/ncpu//usr/bin/ssh user:pass@host
# @grp1+grp2/ncpu//usr/bin/ssh user:pass@host:port
# [@grp+grp]/ncpu//usr/bin/ssh user:pass@server:port
if($s =~ s:^\@([^/]+)/?::) {
# [@grp+grp/][ncpu/][ssh command ][[user][:password]@][host[:port]]
if($s =~ s:^\@([^/]+)/::) {
# Look for SSHLogin hostgroups
%hostgroups = map { $_ => 1 } split(/\+|,/, $1);
}
# An SSHLogin is always in the hostgroup of its "numcpu/host"
$hostgroups{$s} = 1;
# [ncpu/]/usr/bin/ssh user:pass@server:port
# [ncpu/][ssh command ][[user][:password]@][host[:port]]
if ($s =~ s:^(\d+)/::) { $ncpus = $1; }
# Why disallow space in password?
@ -7407,11 +7471,13 @@ sub new($$) {
# cmd 'C:/bin/ssh' user 'user' with password 'C:/bin/ssh'
# This is impossible to determine.
# With space forbidden in password it uniquely parses as the 2nd.
# [/usr/bin/ssh ]user:pass@server:port
# [ssh command ][[user][:password]@][host[:port]]
if($s =~ s/^(.*) //) { $sshcommand = $1; }
# [user:pass@]server:port
if($s =~ s/^(.+)@//) {
# [[user][:password]@][host[:port]]
# An SSHLogin is always in the hostgroup of its "user:pass@host:port"
$hostgroups{$s} = 1;
if($s =~ s/^(.*)@//) {
my $userpw = $1;
# user[:pass]
if($userpw =~ s/:(.*)//) {
@ -7422,9 +7488,25 @@ sub new($$) {
::wait_and_exit(255);
}
}
# This might be empty - that is OK
$user = $userpw;
}
# [server]:port
# [host[:port]]
# host can have these formats:
# hostname (: as local is dealt with later)
# IPv4 i.p.n.o
# with port
# * :22
# * :ssh
# IPv6:
# * \[b11010000011101]
# * \[o64072/14]
# * \[xd074/14]
# * \[208.116.0.0/14]
# with port
# * .22
# * p22
# * #22
if(not $s =~ /:.*:/
and
$s =~ s/^([-a-z0-9._]+)//i) {
@ -7446,7 +7528,6 @@ sub new($$) {
# 2001:db8::1 port 80 - not supported
$host = $1;
}
# [:port]
if($s =~ s/^:(\w+)//i) {
$port = $1;
@ -7468,10 +7549,11 @@ sub new($$) {
($user && $user."@").
($host && $host).
($port && ":$port");
my $userpassword = ($user && $user).($password && ":".$password);
my $pwstring =
# Only include the sshcommand in $string if it is set by user
($sshcommand && $sshcommand." ").
($user && $user. ($password && ":".$password)."@").
($userpassword && $userpassword."@").
($host && $host).
($port && ":$port");
if($host eq ':') {
@ -8871,10 +8953,20 @@ sub sct_gnu_linux($) {
my $threads_per_core;
my $cores_per_socket;
for(@lscpu) {
# lscpu
/^CPU.s.:\s*(\d+)/ and $cpu->{'threads'} = $1;
/^Thread.s. per core:\s*(\d+)/ and $threads_per_core = $1;
/^Core.s. per socket:\s*(\d+)/ and $cores_per_socket = $1;
/^(CPU )?Socket.s.:\s*(\d+)/i and $cpu->{'sockets'} = $2;
# lscpu --all --extended
# 3 0 0 1 1:1:1:0 yes 2900.0000 800.0000 1995.6210
# 1 0 0 1 1:1:1 yes 1300.0000 800.0000 800.0000
/^\s+(\d+)\s+\d+\s+(\d+)\s+(\d+)\s+\d+:\d+:\S+\s/ and do {
# Really only the last line matters
$cpu->{'threads'} = $1+1;
$cpu->{'sockets'} = $2+1;
$cpu->{'cores'} = $3+1;
};
}
if($cores_per_socket and $cpu->{'sockets'}) {
$cpu->{'cores'} = $cores_per_socket * $cpu->{'sockets'};
@ -8896,7 +8988,7 @@ sub sct_gnu_linux($) {
read_cpuinfo(split/(?<=\n)/,$ENV{'PARALLEL_CPUINFO'});
} elsif($ENV{'PARALLEL_LSCPU'}) {
# Use LSCPU from environment - used for testing only
read_lscpu(split/(?<=\n)/,$ENV{'PARALLEL_LSCPU'});
read_lscpu(split/\n/,$ENV{'PARALLEL_LSCPU'});
} elsif(-r "$ENV{'PARALLEL_CPUPREFIX'}/cpu0/topology/thread_siblings") {
# Use CPUPREFIX from environment - used for testing only
read_topology($ENV{'PARALLEL_CPUPREFIX'});
@ -8906,7 +8998,7 @@ sub sct_gnu_linux($) {
# Not debugging: Look at this computer
if(!($cpu->{'sockets'} and $cpu->{'cores'} and $cpu->{'threads'})
and
open(my $in_fh, "-|", "lscpu")) {
open(my $in_fh, "-|", "lscpu --all --extended")) {
# Parse output from lscpu
read_lscpu(<$in_fh>);
close $in_fh;

View file

@ -3190,11 +3190,11 @@ See also: TIME POSTFIXES B<--sshlogin> B<--delay>
=item B<--sshlogin> I<[@hostgroups/][ncpus/][[user][:[password]]@]host[:port][,...]>
=item B<--sshlogin> I<@hostgroup>
=item B<--sshlogin> I<@hostgroup>/
=item B<-S> I<[@hostgroups/][ncpus/][ssh command][[user][:[password]]@]host[:port][,...]>
=item B<-S> I<@hostgroup>
=item B<-S> I<@hostgroup>/
Distribute jobs to remote computers.

View file

@ -137,7 +137,7 @@ GetOptions(
"help" => \$opt::dummy,
) || exit(255);
$Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1];
$Global::version = 20240922;
$Global::version = 20241022;
if($opt::version) { version(); exit 0; }
# Remove -D and --parallel=N
my @s = (grep { ! /^-D$|^--parallel=\S+$/ }

View file

@ -670,7 +670,7 @@ $Global::Initfile && unlink $Global::Initfile;
exit ($err);
sub parse_options {
$Global::version = 20240922;
$Global::version = 20241022;
$Global::progname = 'sql';
# This must be done first as this may exec myself

View file

@ -8,6 +8,43 @@
# Each should be taking 30-100s and be possible to run in parallel
# I.e.: No race conditions, no logins
par_sshlogin_parsing() {
echo '### Generate sshlogins to test parsing'
sudo sshd -p 22222
gen_sshlogin() {
grp=grp1+grp2
ncpu=4
ssh=/usr/bin/ssh
user=parallel
userpass=withpassword
pass="$withpassword"
host=lo
port=22222
# no pass
parallel -k echo \
{1}{2}{3}{4}{5}{=1'$_ = ($arg[4]||$arg[5]) ? "\@" : ""' =}$host{6} \
::: '' @$grp/ ::: '' $ncpu/ ::: '' $ssh' ' \
::: '' $user ::: '' ::: '' :$port
# pass
parallel -k echo \
{1}{2}{3}{4}{5}{=1'$_ = ($arg[4]||$arg[5]) ? "\@" : ""' =}$host{6} \
::: '' @$grp/ ::: '' $ncpu/ ::: '' $ssh' ' \
::: '' $userpass ::: :"$pass" ::: '' :$port
}
doit() {
if parallel -S "$1" {} '$SSH_CLIENT|field 3;whoami' ::: echo ; then
: echo OK
else
echo Fail
fi
}
export -f doit
gen_sshlogin | parallel --tag --timeout 20 -k doit
}
par__print_in_blocks() {
echo '### bug #41565: Print happens in blocks - not after each job complete'
median() { perl -e '@a=sort {$a<=>$b} <>;print $a[$#a/2]';}

View file

@ -1369,6 +1369,94 @@ par__test_cpu_detection_lscpu() {
compgen -A function | grep ^cpu | sort | parallel -j0 -k test_one
rm ~/.parallel/tmp/sshlogin/*/cpuspec 2>/dev/null
}
par__test_cpu_detection_lscpu_--all_--extended() {
pack() { zstd -19 | mmencode; }
unpack() { mmencode -u | zstd -d; }
export -f unpack
# ssh server lscpu --all --extended | pack
cpu3() {
echo '1-2-4-2 Core i5-2410M laptop firewall'
echo '
KLUv/QRoBQQA0gYWGHCtDnzPzw76rSjXJHV5twOYLUlfqv43WWq5mbDAYo/P3Rr/alsIFuAc
t+/adX0Jmv63//6KGvO/U8xmmP8fqSFpPZOv5YtYvoflY1Lhl3jAqjwSlZ5BYBEg8ALb2pEO
kGvVfEIAircDrMryswQmQCOci78EmFUDeEAyiFCTmkD1
' | unpack
}
cpu13() {
echo '1-2-2-2 AMD Neo N36L Dual-Core Processor'
echo '
KLUv/QRoTQMAgoURFpBNY2syao8D/vfeGkqOTGuz1NTY0pTEmmc+kEmMAeKQU1L1io8POKT9
0NGeov2vQ5h7C0ynZBole5e3bjZZj3mN53aUFQ4ggALUaxAYHlqAHBGpjAmBGaAzHIBXAmbV
ATDAGAgoKVhdvw==
' | unpack
}
cpu19() {
echo '1-2-4-2 ThinkPad A475 AMD PRO A12-8830B R7 (64g)'
echo '
KLUv/QRoJQQA8kYXGXCtDnzPzw76rSgRSLE7rjbEE0IrrPrfZAGrmTB062XdsOHjM1vXgoH/
xa0fELRjjb/ArsBOSdUffNDxv/+iB2QkD5Fc0mPSejbhxBNGPC+XGt9IJFbmsqj0jhIDEiBg
w3QNIJFcgPBwhAEJIBYx/SYGA8TZTgGYFYADN9xCOVCeG3FI2w==
' | unpack
}
cpu21() {
echo '2-12-24-12 Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz (kreta)'
echo '
KLUv/QRojQYA8gkdGHBvDlztQ2HSU/8ZXvMutLS0iaTrVP01X4yZl5XlxoX71m1btty7ravb
8lJ2fIwND+H2+9vX7s51e2vNzljzmXu/+wN7VdVAldkt6vpbf/0B5ZCMJBKS/y+UYyrL2Wye
Xe3saeeLZhn+FMiwOC+IRTnEDAE4qOFUMuCwz74BUE8tazGNESBEhBMr/mcCUbkH8CBRaVnR
Utmi0lKbdTtxAhKCFxDgq4qrB4fssyd+hzTUliaPXXMlXeivPoZcFv1AtK+bJxn3SVtkgXx6
tCoL/r+Y
' | unpack
}
cpu22() {
echo '1-16-24-16 12900K https://stackoverflow.com/a/71282744/363028'
echo '
KLUv/QRoHQcAcgwiGHBvDlztQ2HSU/8Yv0AX1nZ3bwlO1V/vBfALb+je992vua+73ee2b7ub
tn9/f+rK1a/eejl3egrTrbSMcAULz210bF9oqJ/7/KSwzi5CuM3tub3fbgPSqqqBqhCNWZm9
aqsNMMhimzqWaVhs22AQhWnslG3KXle2umLjaQhHRkI0kI2iYSw5RDaosXQnWFJDZdk3gE2r
AaEIERhChBNZNPGPBKPKPHiLEhWHkWF4HJyLA2JJed1oAHlHMUYzijHSQmXEO4oxmlEtDApN
QezCFCBrSYSKt5G7ixaw9Ml2VwFqvgJs
' | unpack
}
cpu23() {
echo '1-14-20-14 https://github.com/nodejs/node/issues/52233#issuecomment-2023768771'
echo '
KLUv/QRoJQcAMo0jGnBNc3zPzw76LWIb4GzTPebS0iYy0Qqr/ps4mMdssstf1ov5zEWlvvzl
HiblK5eh5Cd3HeQjVyXK9OMfNxnVQT//XHTIzhM+Yc9S97zxxmZC/vqqT+LPT9HYApB7gbt1
KoFM2l97LYApHNo6CIeG4NC2C1NoTNNsd3sE2x/YuiQapYvFoDSKLoOGKQOhBC6ggXgpkEA0
VO13kKWWA5kQ3YTsJmQz37VJpE2QblKQYrhcIOthvksBHXYsUkQpM6SgX0iEoJ4ZIWhvPggs
iRBrnLZwBFTkfvsVAbMDGgiSg60Cro5aVQ==
' | unpack
}
cpu24() {
echo '1-24-32-24 https://in.mathworks.com/matlabcentral/answers/2100291-matlab-parallel-computing-beyond-8-cores-causing-os-to-crash#comment_3113976'
echo '
KLUv/QRoHQsAttY4GoBNOszTAR2eDUbFsPkwkPbee8skydcXNmkPOgAuAC0AeC1g3amamS1m
6ZQiqbS3ttYCEIVDWwjh8Agc2pZBFBpEom6OzSfXPHJNmUVC0AZjECQYZQYJRB0KQU15PkRP
fGIR3rnhDXvslqE8uqNrqp6XleyS3cc7Xo1sdfDqqphGCxcvu3s+ewE9xnRLHjvlKzcx+cn1
rSMfuWh4/OPeSj9dO5ULLafs7NtdKVMdfXQVOukKrzApn7I+ozzKorkA5FsQ2Z38yd66e+Yz
a6icd3YlzGNWoctfNh273S1vWZTLXw5NqIFYSgIJGFnYyr4BcEsrjQEyCSCIAGQIhiBS4Y+E
TSFiA9wB0VQdkzMaTs9TzcD9lry8sZBCrX3I76Ie/D7KiJraeWFJGDH4wPBHl05EiXgccoB2
OzxYwCGuPxjIfC63kHF+GajpnoHBk33Vzo8heiJL/27jCygcJJ+kCrJLTb4=
' | unpack
}
export -f $(compgen -A function | grep ^cpu)
test_one() {
eval $1 | head -n1
export PARALLEL_LSCPU="$(eval $1 | tail -n +2)"
echo $(parallel --number-of-sockets) \
$(parallel --number-of-cores) \
$(parallel --number-of-threads) \
$(parallel --number-of-cpus)
}
export -f test_one
compgen -A function | grep ^cpu | sort | parallel -j0 -k test_one
rm ~/.parallel/tmp/sshlogin/*/cpuspec 2>/dev/null
}
par_combineexec() {
combineexec() {

View file

@ -99,18 +99,21 @@ par_sql_CSV() {
}
par_hostgroup() {
echo '### --hostgroup force ncpu'
parallel --delay 0.1 --hgrp -S @g1/1/parallel@lo -S @g2/3/lo whoami\;sleep 0.4{} ::: {1..8} | sort -u
echo '### --hostgroup force ncpu - 2x parallel, 6x me'
parallel --delay 0.1 --hgrp -S @g1/1/parallel@lo -S @g2/3/lo \
'whoami;sleep 0.4{}' ::: {1..8} | sort
echo '### --hostgroup two group arg'
parallel -k --sshdelay 0.1 --hgrp -S @g1/1/parallel@lo -S @g2/3/lo whoami\;sleep 0.3{} ::: {1..8}@g1+g2 | sort
echo '### --hostgroup two group arg - 2x parallel, 6x me'
parallel -k --sshdelay 0.1 --hgrp -S @g1/1/parallel@lo -S @g2/3/lo \
'whoami;sleep 0.3{}' ::: {1..8}@g1+g2 | sort
echo '### --hostgroup one group arg'
parallel --delay 0.2 --hgrp -S @g1/1/parallel@lo -S @g2/3/lo whoami\;sleep 0.4{} ::: {1..8}@g2
echo '### --hostgroup one group arg - 8x me'
parallel --delay 0.2 --hgrp -S @g1/1/parallel@lo -S @g2/3/lo \
'whoami;sleep 0.4{}' ::: {1..8}@g2
echo '### --hostgroup multiple group arg + unused group'
parallel --delay 0.2 --hgrp -S @g1/1/parallel@lo -S @g1/3/lo -S @g3/100/tcsh@lo whoami\;sleep 0.8{} ::: {1..8}@g1+g2 2>&1 |
sort -u | grep -v Warning
echo '### --hostgroup multiple group arg + unused group - 2x parallel, 6x me, 0x tcsh'
parallel --delay 0.2 --hgrp -S @g1/1/parallel@lo -S @g1/3/lo -S @g3/30/tcsh@lo \
'whoami;sleep 0.8{}' ::: {1..8}@g1+g2 2>&1 | sort -u | grep -v Warning
echo '### --hostgroup two groups @'
parallel -k --hgrp -S @g1/parallel@lo -S @g2/lo --tag whoami\;echo ::: parallel@g1 tange@g2
@ -121,14 +124,17 @@ par_hostgroup() {
echo '### --hostgroup --sshlogin with @'
parallel -k --hostgroups -S parallel@lo echo ::: no_group implicit_group@parallel@lo
echo '### --hostgroup -S @group'
parallel -S @g1/ -S @g1/1/tcsh@lo -S @g1/1/localhost -S @g2/1/parallel@lo whoami\;true ::: {1..6} | sort -u
echo '### --hostgroup -S @group - bad if you get parallel@lo'
parallel -S @g1/ -S @g1/1/tcsh@lo -S @g1/1/localhost -S @g2/1/parallel@lo \
'whoami;true' ::: {1..6} | sort -u
echo '### --hostgroup -S @group1 -Sgrp2'
parallel -S @g1/ -S @g2 -S @g1/1/tcsh@lo -S @g1/1/localhost -S @g2/1/parallel@lo whoami\;true ::: {1..6} | sort
echo '### --hostgroup -S @group1 -Sgrp2 - get all twice'
parallel -S @g1/ -S @g2/ -S @g1/1/tcsh@lo -S @g1/1/localhost -S @g2/1/parallel@lo \
'whoami;sleep 1;true' ::: {1..6} | sort
echo '### --hostgroup -S @group1+grp2'
parallel -S @g1+g2 -S @g1/1/tcsh@lo -S @g1/1/localhost -S @g2/1/parallel@lo whoami\;true ::: {1..6} | sort
echo '### --hostgroup -S @group1+grp2 - get all twice'
parallel -S @g1+g2/ -S @g1/1/tcsh@lo -S @g1/1/localhost -S @g2/1/parallel@lo \
'whoami;sleep 1;true' ::: {1..6} | sort
}
par_PARALLEL_RSYNC_OPTS() {

View file

@ -111,7 +111,7 @@ par_listproc() {
echo "### Test --listproc"
sql --listproc :oraunittest |
perl -ne '/select 1 from dual|user_objects|user_tablespaces|connect_by_filtering/ and next;
s/[21 ]\.\d{5}/1.99999/;
s/[21 ]\.\d{4,5}/1.99999/;
s/ +/ /g;
print'
sql --listproc $MYSQL_TEST_DBURL |

View file

@ -3058,6 +3058,135 @@ par_slow_total_jobs b
par_slow_total_jobs 1
par_slow_total_jobs 2
par_slow_total_jobs parallel: Warning: Reading X arguments took longer than XX seconds.
par_sshlogin_parsing ### Generate sshlogins to test parsing
par_sshlogin_parsing lo 22
par_sshlogin_parsing lo tange
par_sshlogin_parsing lo:22222 22222
par_sshlogin_parsing lo:22222 tange
par_sshlogin_parsing parallel@lo 22
par_sshlogin_parsing parallel@lo parallel
par_sshlogin_parsing parallel@lo:22222 22222
par_sshlogin_parsing parallel@lo:22222 parallel
par_sshlogin_parsing /usr/bin/ssh lo 22
par_sshlogin_parsing /usr/bin/ssh lo tange
par_sshlogin_parsing /usr/bin/ssh lo:22222 22222
par_sshlogin_parsing /usr/bin/ssh lo:22222 tange
par_sshlogin_parsing /usr/bin/ssh parallel@lo 22
par_sshlogin_parsing /usr/bin/ssh parallel@lo parallel
par_sshlogin_parsing /usr/bin/ssh parallel@lo:22222 22222
par_sshlogin_parsing /usr/bin/ssh parallel@lo:22222 parallel
par_sshlogin_parsing 4/lo 22
par_sshlogin_parsing 4/lo tange
par_sshlogin_parsing 4/lo:22222 22222
par_sshlogin_parsing 4/lo:22222 tange
par_sshlogin_parsing 4/parallel@lo 22
par_sshlogin_parsing 4/parallel@lo parallel
par_sshlogin_parsing 4/parallel@lo:22222 22222
par_sshlogin_parsing 4/parallel@lo:22222 parallel
par_sshlogin_parsing 4//usr/bin/ssh lo 22
par_sshlogin_parsing 4//usr/bin/ssh lo tange
par_sshlogin_parsing 4//usr/bin/ssh lo:22222 22222
par_sshlogin_parsing 4//usr/bin/ssh lo:22222 tange
par_sshlogin_parsing 4//usr/bin/ssh parallel@lo 22
par_sshlogin_parsing 4//usr/bin/ssh parallel@lo parallel
par_sshlogin_parsing 4//usr/bin/ssh parallel@lo:22222 22222
par_sshlogin_parsing 4//usr/bin/ssh parallel@lo:22222 parallel
par_sshlogin_parsing @grp1+grp2/lo 22
par_sshlogin_parsing @grp1+grp2/lo tange
par_sshlogin_parsing @grp1+grp2/lo:22222 22222
par_sshlogin_parsing @grp1+grp2/lo:22222 tange
par_sshlogin_parsing @grp1+grp2/parallel@lo 22
par_sshlogin_parsing @grp1+grp2/parallel@lo parallel
par_sshlogin_parsing @grp1+grp2/parallel@lo:22222 22222
par_sshlogin_parsing @grp1+grp2/parallel@lo:22222 parallel
par_sshlogin_parsing @grp1+grp2//usr/bin/ssh lo 22
par_sshlogin_parsing @grp1+grp2//usr/bin/ssh lo tange
par_sshlogin_parsing @grp1+grp2//usr/bin/ssh lo:22222 22222
par_sshlogin_parsing @grp1+grp2//usr/bin/ssh lo:22222 tange
par_sshlogin_parsing @grp1+grp2//usr/bin/ssh parallel@lo 22
par_sshlogin_parsing @grp1+grp2//usr/bin/ssh parallel@lo parallel
par_sshlogin_parsing @grp1+grp2//usr/bin/ssh parallel@lo:22222 22222
par_sshlogin_parsing @grp1+grp2//usr/bin/ssh parallel@lo:22222 parallel
par_sshlogin_parsing @grp1+grp2/4/lo 22
par_sshlogin_parsing @grp1+grp2/4/lo tange
par_sshlogin_parsing @grp1+grp2/4/lo:22222 22222
par_sshlogin_parsing @grp1+grp2/4/lo:22222 tange
par_sshlogin_parsing @grp1+grp2/4/parallel@lo 22
par_sshlogin_parsing @grp1+grp2/4/parallel@lo parallel
par_sshlogin_parsing @grp1+grp2/4/parallel@lo:22222 22222
par_sshlogin_parsing @grp1+grp2/4/parallel@lo:22222 parallel
par_sshlogin_parsing @grp1+grp2/4//usr/bin/ssh lo 22
par_sshlogin_parsing @grp1+grp2/4//usr/bin/ssh lo tange
par_sshlogin_parsing @grp1+grp2/4//usr/bin/ssh lo:22222 22222
par_sshlogin_parsing @grp1+grp2/4//usr/bin/ssh lo:22222 tange
par_sshlogin_parsing @grp1+grp2/4//usr/bin/ssh parallel@lo 22
par_sshlogin_parsing @grp1+grp2/4//usr/bin/ssh parallel@lo parallel
par_sshlogin_parsing @grp1+grp2/4//usr/bin/ssh parallel@lo:22222 22222
par_sshlogin_parsing @grp1+grp2/4//usr/bin/ssh parallel@lo:22222 parallel
par_sshlogin_parsing ::;`echo>/tmp/trap`;)(|<*&"'@lo 22
par_sshlogin_parsing ::;`echo>/tmp/trap`;)(|<*&"'@lo tange
par_sshlogin_parsing ::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 22222
par_sshlogin_parsing ::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 tange
par_sshlogin_parsing withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo 22
par_sshlogin_parsing withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo withpassword
par_sshlogin_parsing withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 22222
par_sshlogin_parsing withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 withpassword
par_sshlogin_parsing /usr/bin/ssh ::;`echo>/tmp/trap`;)(|<*&"'@lo 22
par_sshlogin_parsing /usr/bin/ssh ::;`echo>/tmp/trap`;)(|<*&"'@lo tange
par_sshlogin_parsing /usr/bin/ssh ::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 22222
par_sshlogin_parsing /usr/bin/ssh ::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 tange
par_sshlogin_parsing /usr/bin/ssh withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo 22
par_sshlogin_parsing /usr/bin/ssh withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo withpassword
par_sshlogin_parsing /usr/bin/ssh withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 22222
par_sshlogin_parsing /usr/bin/ssh withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 withpassword
par_sshlogin_parsing 4/::;`echo>/tmp/trap`;)(|<*&"'@lo 22
par_sshlogin_parsing 4/::;`echo>/tmp/trap`;)(|<*&"'@lo tange
par_sshlogin_parsing 4/::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 22222
par_sshlogin_parsing 4/::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 tange
par_sshlogin_parsing 4/withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo 22
par_sshlogin_parsing 4/withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo withpassword
par_sshlogin_parsing 4/withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 22222
par_sshlogin_parsing 4/withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 withpassword
par_sshlogin_parsing 4//usr/bin/ssh ::;`echo>/tmp/trap`;)(|<*&"'@lo 22
par_sshlogin_parsing 4//usr/bin/ssh ::;`echo>/tmp/trap`;)(|<*&"'@lo tange
par_sshlogin_parsing 4//usr/bin/ssh ::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 22222
par_sshlogin_parsing 4//usr/bin/ssh ::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 tange
par_sshlogin_parsing 4//usr/bin/ssh withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo 22
par_sshlogin_parsing 4//usr/bin/ssh withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo withpassword
par_sshlogin_parsing 4//usr/bin/ssh withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 22222
par_sshlogin_parsing 4//usr/bin/ssh withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 withpassword
par_sshlogin_parsing @grp1+grp2/::;`echo>/tmp/trap`;)(|<*&"'@lo 22
par_sshlogin_parsing @grp1+grp2/::;`echo>/tmp/trap`;)(|<*&"'@lo tange
par_sshlogin_parsing @grp1+grp2/::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 22222
par_sshlogin_parsing @grp1+grp2/::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 tange
par_sshlogin_parsing @grp1+grp2/withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo 22
par_sshlogin_parsing @grp1+grp2/withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo withpassword
par_sshlogin_parsing @grp1+grp2/withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 22222
par_sshlogin_parsing @grp1+grp2/withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 withpassword
par_sshlogin_parsing @grp1+grp2//usr/bin/ssh ::;`echo>/tmp/trap`;)(|<*&"'@lo 22
par_sshlogin_parsing @grp1+grp2//usr/bin/ssh ::;`echo>/tmp/trap`;)(|<*&"'@lo tange
par_sshlogin_parsing @grp1+grp2//usr/bin/ssh ::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 22222
par_sshlogin_parsing @grp1+grp2//usr/bin/ssh ::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 tange
par_sshlogin_parsing @grp1+grp2//usr/bin/ssh withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo 22
par_sshlogin_parsing @grp1+grp2//usr/bin/ssh withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo withpassword
par_sshlogin_parsing @grp1+grp2//usr/bin/ssh withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 22222
par_sshlogin_parsing @grp1+grp2//usr/bin/ssh withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 withpassword
par_sshlogin_parsing @grp1+grp2/4/::;`echo>/tmp/trap`;)(|<*&"'@lo 22
par_sshlogin_parsing @grp1+grp2/4/::;`echo>/tmp/trap`;)(|<*&"'@lo tange
par_sshlogin_parsing @grp1+grp2/4/::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 22222
par_sshlogin_parsing @grp1+grp2/4/::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 tange
par_sshlogin_parsing @grp1+grp2/4/withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo 22
par_sshlogin_parsing @grp1+grp2/4/withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo withpassword
par_sshlogin_parsing @grp1+grp2/4/withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 22222
par_sshlogin_parsing @grp1+grp2/4/withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 withpassword
par_sshlogin_parsing @grp1+grp2/4//usr/bin/ssh ::;`echo>/tmp/trap`;)(|<*&"'@lo 22
par_sshlogin_parsing @grp1+grp2/4//usr/bin/ssh ::;`echo>/tmp/trap`;)(|<*&"'@lo tange
par_sshlogin_parsing @grp1+grp2/4//usr/bin/ssh ::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 22222
par_sshlogin_parsing @grp1+grp2/4//usr/bin/ssh ::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 tange
par_sshlogin_parsing @grp1+grp2/4//usr/bin/ssh withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo 22
par_sshlogin_parsing @grp1+grp2/4//usr/bin/ssh withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo withpassword
par_sshlogin_parsing @grp1+grp2/4//usr/bin/ssh withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 22222
par_sshlogin_parsing @grp1+grp2/4//usr/bin/ssh withpassword::;`echo>/tmp/trap`;)(|<*&"'@lo:22222 withpassword
par_test_detected_shell ### bug #42913: Dont use $SHELL but the shell currently running
par_test_detected_shell test_unknown_shell bash Global::shell /usr/bin/bash
par_test_detected_shell test_unknown_shell csh Global::shell /usr/bin/bash

View file

@ -672,6 +672,20 @@ par__test_cpu_detection_lscpu 1-8-8-8 Huawei P Smart Octa-core (4x2.36 GHz Corte
par__test_cpu_detection_lscpu 2 8 8 8
par__test_cpu_detection_lscpu 1-4-4-4 x96 quad-core Android TV-box
par__test_cpu_detection_lscpu 1 1 1 1
par__test_cpu_detection_lscpu_--all_--extended 1-2-2-2 AMD Neo N36L Dual-Core Processor
par__test_cpu_detection_lscpu_--all_--extended 1 2 2 2
par__test_cpu_detection_lscpu_--all_--extended 1-2-4-2 ThinkPad A475 AMD PRO A12-8830B R7 (64g)
par__test_cpu_detection_lscpu_--all_--extended 1 2 4 2
par__test_cpu_detection_lscpu_--all_--extended 2-12-24-12 Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz (kreta)
par__test_cpu_detection_lscpu_--all_--extended 2 12 24 12
par__test_cpu_detection_lscpu_--all_--extended 1-16-24-16 12900K https://stackoverflow.com/a/71282744/363028
par__test_cpu_detection_lscpu_--all_--extended 1 16 24 16
par__test_cpu_detection_lscpu_--all_--extended 1-14-20-14 https://github.com/nodejs/node/issues/52233#issuecomment-2023768771
par__test_cpu_detection_lscpu_--all_--extended 1 14 20 14
par__test_cpu_detection_lscpu_--all_--extended 1-24-32-24 https://in.mathworks.com/matlabcentral/answers/2100291-matlab-parallel-computing-beyond-8-cores-causing-os-to-crash#comment_3113976
par__test_cpu_detection_lscpu_--all_--extended 1 24 32 24
par__test_cpu_detection_lscpu_--all_--extended 1-2-4-2 Core i5-2410M laptop firewall
par__test_cpu_detection_lscpu_--all_--extended 1 2 4 2
par__test_cpu_detection_topology 4-64-64-64 Dell R815 4 CPU 64-core
par__test_cpu_detection_topology 4 8 8 8
par__test_cpu_detection_topology 1-2-2-2 AMD Neo N36L Dual-Core Processor