GNU parallel proper usage in conjunction with tar, xz, gpg

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








0















I would like to speed up my archiving operations, I am usually doing 23 GiB (one Blu-Ray) backups.



I have found this: How to do large file parallel encryption using GnuPG and GNU parallel?




Since I don't understand this code at all (have never used parallel):



tar --create --format=posix --preserve-permissions --same-owner --directory $BASE/$name --to-stdout . |
parallel --pipe --recend '' --keep-order --block-size 128M "xz -9 --check=sha256 |
gpg --encrypt --recipient $RECIPIENT;echo bLoCk EnD" |
pv > $TARGET/$FILENAME



I would like to ask if anyone could kindly parse it for me. Thank you.










share|improve this question



















  • 2





    It makes it easier to understand what level of understanding you have, if you can answer these questions: Have you watched the intro videos pi.dk/1? Have you read the cheat sheet gnu.org/software/parallel/parallel_cheat.pdf? Have you walked through the tutorial man parallel_tutorial? Have you read chapter 1-2 of GNU Parallel 2018 (online: doi.org/10.5281/zenodo.1146014)? Have you read chapter 9 of the book? Have you read the EXAMPLE section of man parallel? Have you read the rest of man parallel?

    – Ole Tange
    Mar 16 at 9:36











  • @OleTange Well, sadly No to all questions. Do you really think that this is relevant? For me to maybe include this info... Anyway, thank you for the perfect answer. I hope I will be fine now when adjusting it to my needs.

    – Vlastimil
    Mar 16 at 12:59


















0















I would like to speed up my archiving operations, I am usually doing 23 GiB (one Blu-Ray) backups.



I have found this: How to do large file parallel encryption using GnuPG and GNU parallel?




Since I don't understand this code at all (have never used parallel):



tar --create --format=posix --preserve-permissions --same-owner --directory $BASE/$name --to-stdout . |
parallel --pipe --recend '' --keep-order --block-size 128M "xz -9 --check=sha256 |
gpg --encrypt --recipient $RECIPIENT;echo bLoCk EnD" |
pv > $TARGET/$FILENAME



I would like to ask if anyone could kindly parse it for me. Thank you.










share|improve this question



















  • 2





    It makes it easier to understand what level of understanding you have, if you can answer these questions: Have you watched the intro videos pi.dk/1? Have you read the cheat sheet gnu.org/software/parallel/parallel_cheat.pdf? Have you walked through the tutorial man parallel_tutorial? Have you read chapter 1-2 of GNU Parallel 2018 (online: doi.org/10.5281/zenodo.1146014)? Have you read chapter 9 of the book? Have you read the EXAMPLE section of man parallel? Have you read the rest of man parallel?

    – Ole Tange
    Mar 16 at 9:36











  • @OleTange Well, sadly No to all questions. Do you really think that this is relevant? For me to maybe include this info... Anyway, thank you for the perfect answer. I hope I will be fine now when adjusting it to my needs.

    – Vlastimil
    Mar 16 at 12:59














0












0








0








I would like to speed up my archiving operations, I am usually doing 23 GiB (one Blu-Ray) backups.



I have found this: How to do large file parallel encryption using GnuPG and GNU parallel?




Since I don't understand this code at all (have never used parallel):



tar --create --format=posix --preserve-permissions --same-owner --directory $BASE/$name --to-stdout . |
parallel --pipe --recend '' --keep-order --block-size 128M "xz -9 --check=sha256 |
gpg --encrypt --recipient $RECIPIENT;echo bLoCk EnD" |
pv > $TARGET/$FILENAME



I would like to ask if anyone could kindly parse it for me. Thank you.










share|improve this question
















I would like to speed up my archiving operations, I am usually doing 23 GiB (one Blu-Ray) backups.



I have found this: How to do large file parallel encryption using GnuPG and GNU parallel?




Since I don't understand this code at all (have never used parallel):



tar --create --format=posix --preserve-permissions --same-owner --directory $BASE/$name --to-stdout . |
parallel --pipe --recend '' --keep-order --block-size 128M "xz -9 --check=sha256 |
gpg --encrypt --recipient $RECIPIENT;echo bLoCk EnD" |
pv > $TARGET/$FILENAME



I would like to ask if anyone could kindly parse it for me. Thank you.







tar gpg gnu-parallel xz






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 15 at 10:22







Vlastimil

















asked Mar 15 at 8:52









VlastimilVlastimil

8,5981566149




8,5981566149







  • 2





    It makes it easier to understand what level of understanding you have, if you can answer these questions: Have you watched the intro videos pi.dk/1? Have you read the cheat sheet gnu.org/software/parallel/parallel_cheat.pdf? Have you walked through the tutorial man parallel_tutorial? Have you read chapter 1-2 of GNU Parallel 2018 (online: doi.org/10.5281/zenodo.1146014)? Have you read chapter 9 of the book? Have you read the EXAMPLE section of man parallel? Have you read the rest of man parallel?

    – Ole Tange
    Mar 16 at 9:36











  • @OleTange Well, sadly No to all questions. Do you really think that this is relevant? For me to maybe include this info... Anyway, thank you for the perfect answer. I hope I will be fine now when adjusting it to my needs.

    – Vlastimil
    Mar 16 at 12:59













  • 2





    It makes it easier to understand what level of understanding you have, if you can answer these questions: Have you watched the intro videos pi.dk/1? Have you read the cheat sheet gnu.org/software/parallel/parallel_cheat.pdf? Have you walked through the tutorial man parallel_tutorial? Have you read chapter 1-2 of GNU Parallel 2018 (online: doi.org/10.5281/zenodo.1146014)? Have you read chapter 9 of the book? Have you read the EXAMPLE section of man parallel? Have you read the rest of man parallel?

    – Ole Tange
    Mar 16 at 9:36











  • @OleTange Well, sadly No to all questions. Do you really think that this is relevant? For me to maybe include this info... Anyway, thank you for the perfect answer. I hope I will be fine now when adjusting it to my needs.

    – Vlastimil
    Mar 16 at 12:59








2




2





It makes it easier to understand what level of understanding you have, if you can answer these questions: Have you watched the intro videos pi.dk/1? Have you read the cheat sheet gnu.org/software/parallel/parallel_cheat.pdf? Have you walked through the tutorial man parallel_tutorial? Have you read chapter 1-2 of GNU Parallel 2018 (online: doi.org/10.5281/zenodo.1146014)? Have you read chapter 9 of the book? Have you read the EXAMPLE section of man parallel? Have you read the rest of man parallel?

– Ole Tange
Mar 16 at 9:36





It makes it easier to understand what level of understanding you have, if you can answer these questions: Have you watched the intro videos pi.dk/1? Have you read the cheat sheet gnu.org/software/parallel/parallel_cheat.pdf? Have you walked through the tutorial man parallel_tutorial? Have you read chapter 1-2 of GNU Parallel 2018 (online: doi.org/10.5281/zenodo.1146014)? Have you read chapter 9 of the book? Have you read the EXAMPLE section of man parallel? Have you read the rest of man parallel?

– Ole Tange
Mar 16 at 9:36













@OleTange Well, sadly No to all questions. Do you really think that this is relevant? For me to maybe include this info... Anyway, thank you for the perfect answer. I hope I will be fine now when adjusting it to my needs.

– Vlastimil
Mar 16 at 12:59






@OleTange Well, sadly No to all questions. Do you really think that this is relevant? For me to maybe include this info... Anyway, thank you for the perfect answer. I hope I will be fine now when adjusting it to my needs.

– Vlastimil
Mar 16 at 12:59











1 Answer
1






active

oldest

votes


















4














tar run command tar.



--create create a tar archive.



--format=posix use the POSIX format of tar archive. This means you can extract it on other systems that support the POSIX format.



--preserve-permissions keep the same permissions on the files



--same-owner keep the same owner of the file (only relevant when extracting as root)



--directory $BASE/$name change to the dir $BASE/$name before starting



--to-stdout instead of saving to a file, send output to stdout



. tar the whole directory



| pipe stdout to next command



parallel run parallel



--pipe use pipe mode, so input on stdin will be given as input on stdin to the command to run (and not as command line arguments, which is the normal mode).



--recend '' Normally GNU Parallel splits on n. Disable that because input is not text, but binary data.



--keep-order Make sure the output of the first command run is printed before the output of the second command - even if the second command finishes first.



--block-size 128M Pass a block of 128 MB of data to the command.



"..." the command to run



| pipe stdout to next command



pv show the speed of which data is sent



> $TARGET/$FILENAME redirect stdout to $TARGET/$FILENAME



GNU Parallel starts this command for each 128MB block:



xz the command xz



-9 compress level 9



--check=sha256 include integrity check in the output to be able to catch bit errors (e.g. on faulty disks).



| pipe stdout to next command



gpg the GNU Privacy Guard command



--encrypt encrypt data coming on stdin



--recipient $RECIPIENT use $RECIPIENT's key for encryption



; command separator



echo bLoCk EnD print bLoCk EnD






share|improve this answer























    Your Answer








    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "106"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f506445%2fgnu-parallel-proper-usage-in-conjunction-with-tar-xz-gpg%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    4














    tar run command tar.



    --create create a tar archive.



    --format=posix use the POSIX format of tar archive. This means you can extract it on other systems that support the POSIX format.



    --preserve-permissions keep the same permissions on the files



    --same-owner keep the same owner of the file (only relevant when extracting as root)



    --directory $BASE/$name change to the dir $BASE/$name before starting



    --to-stdout instead of saving to a file, send output to stdout



    . tar the whole directory



    | pipe stdout to next command



    parallel run parallel



    --pipe use pipe mode, so input on stdin will be given as input on stdin to the command to run (and not as command line arguments, which is the normal mode).



    --recend '' Normally GNU Parallel splits on n. Disable that because input is not text, but binary data.



    --keep-order Make sure the output of the first command run is printed before the output of the second command - even if the second command finishes first.



    --block-size 128M Pass a block of 128 MB of data to the command.



    "..." the command to run



    | pipe stdout to next command



    pv show the speed of which data is sent



    > $TARGET/$FILENAME redirect stdout to $TARGET/$FILENAME



    GNU Parallel starts this command for each 128MB block:



    xz the command xz



    -9 compress level 9



    --check=sha256 include integrity check in the output to be able to catch bit errors (e.g. on faulty disks).



    | pipe stdout to next command



    gpg the GNU Privacy Guard command



    --encrypt encrypt data coming on stdin



    --recipient $RECIPIENT use $RECIPIENT's key for encryption



    ; command separator



    echo bLoCk EnD print bLoCk EnD






    share|improve this answer



























      4














      tar run command tar.



      --create create a tar archive.



      --format=posix use the POSIX format of tar archive. This means you can extract it on other systems that support the POSIX format.



      --preserve-permissions keep the same permissions on the files



      --same-owner keep the same owner of the file (only relevant when extracting as root)



      --directory $BASE/$name change to the dir $BASE/$name before starting



      --to-stdout instead of saving to a file, send output to stdout



      . tar the whole directory



      | pipe stdout to next command



      parallel run parallel



      --pipe use pipe mode, so input on stdin will be given as input on stdin to the command to run (and not as command line arguments, which is the normal mode).



      --recend '' Normally GNU Parallel splits on n. Disable that because input is not text, but binary data.



      --keep-order Make sure the output of the first command run is printed before the output of the second command - even if the second command finishes first.



      --block-size 128M Pass a block of 128 MB of data to the command.



      "..." the command to run



      | pipe stdout to next command



      pv show the speed of which data is sent



      > $TARGET/$FILENAME redirect stdout to $TARGET/$FILENAME



      GNU Parallel starts this command for each 128MB block:



      xz the command xz



      -9 compress level 9



      --check=sha256 include integrity check in the output to be able to catch bit errors (e.g. on faulty disks).



      | pipe stdout to next command



      gpg the GNU Privacy Guard command



      --encrypt encrypt data coming on stdin



      --recipient $RECIPIENT use $RECIPIENT's key for encryption



      ; command separator



      echo bLoCk EnD print bLoCk EnD






      share|improve this answer

























        4












        4








        4







        tar run command tar.



        --create create a tar archive.



        --format=posix use the POSIX format of tar archive. This means you can extract it on other systems that support the POSIX format.



        --preserve-permissions keep the same permissions on the files



        --same-owner keep the same owner of the file (only relevant when extracting as root)



        --directory $BASE/$name change to the dir $BASE/$name before starting



        --to-stdout instead of saving to a file, send output to stdout



        . tar the whole directory



        | pipe stdout to next command



        parallel run parallel



        --pipe use pipe mode, so input on stdin will be given as input on stdin to the command to run (and not as command line arguments, which is the normal mode).



        --recend '' Normally GNU Parallel splits on n. Disable that because input is not text, but binary data.



        --keep-order Make sure the output of the first command run is printed before the output of the second command - even if the second command finishes first.



        --block-size 128M Pass a block of 128 MB of data to the command.



        "..." the command to run



        | pipe stdout to next command



        pv show the speed of which data is sent



        > $TARGET/$FILENAME redirect stdout to $TARGET/$FILENAME



        GNU Parallel starts this command for each 128MB block:



        xz the command xz



        -9 compress level 9



        --check=sha256 include integrity check in the output to be able to catch bit errors (e.g. on faulty disks).



        | pipe stdout to next command



        gpg the GNU Privacy Guard command



        --encrypt encrypt data coming on stdin



        --recipient $RECIPIENT use $RECIPIENT's key for encryption



        ; command separator



        echo bLoCk EnD print bLoCk EnD






        share|improve this answer













        tar run command tar.



        --create create a tar archive.



        --format=posix use the POSIX format of tar archive. This means you can extract it on other systems that support the POSIX format.



        --preserve-permissions keep the same permissions on the files



        --same-owner keep the same owner of the file (only relevant when extracting as root)



        --directory $BASE/$name change to the dir $BASE/$name before starting



        --to-stdout instead of saving to a file, send output to stdout



        . tar the whole directory



        | pipe stdout to next command



        parallel run parallel



        --pipe use pipe mode, so input on stdin will be given as input on stdin to the command to run (and not as command line arguments, which is the normal mode).



        --recend '' Normally GNU Parallel splits on n. Disable that because input is not text, but binary data.



        --keep-order Make sure the output of the first command run is printed before the output of the second command - even if the second command finishes first.



        --block-size 128M Pass a block of 128 MB of data to the command.



        "..." the command to run



        | pipe stdout to next command



        pv show the speed of which data is sent



        > $TARGET/$FILENAME redirect stdout to $TARGET/$FILENAME



        GNU Parallel starts this command for each 128MB block:



        xz the command xz



        -9 compress level 9



        --check=sha256 include integrity check in the output to be able to catch bit errors (e.g. on faulty disks).



        | pipe stdout to next command



        gpg the GNU Privacy Guard command



        --encrypt encrypt data coming on stdin



        --recipient $RECIPIENT use $RECIPIENT's key for encryption



        ; command separator



        echo bLoCk EnD print bLoCk EnD







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 16 at 9:29









        Ole TangeOle Tange

        13k1457107




        13k1457107



























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Unix & Linux Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f506445%2fgnu-parallel-proper-usage-in-conjunction-with-tar-xz-gpg%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown






            Popular posts from this blog

            Peggy Mitchell

            Palaiologos

            The Forum (Inglewood, California)