ML
    • Recent
    • Categories
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Script to Move and Decrypt Files in a Specified Directory

    Scheduled Pinned Locked Moved IT Discussion
    bashgpg
    13 Posts 4 Posters 1.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • ObsolesceO
      Obsolesce @wirestyle22
      last edited by

      @wirestyle22 said in Script to Move and Decrypt Files in a Specified Directory:

      @JaredBusch said in Script to Move and Decrypt Files in a Specified Directory:

      @wirestyle22 said in Script to Move and Decrypt Files in a Specified Directory:

      jaredisacuddlebear

      I don’t do the furry scene. Sorry.

      If you did, what animal would you be?

      Everyone knows it would be a fox.

      1 Reply Last reply Reply Quote 5
      • scottalanmillerS
        scottalanmiller
        last edited by

        This is a CMD script. What language do you need and/or what platform are you writing for?

        1 Reply Last reply Reply Quote 0
        • scottalanmillerS
          scottalanmiller
          last edited by

          That script looks odd because it has UNIX filesystem designations mixed into Windows-only legacy code.

          1 Reply Last reply Reply Quote 0
          • scottalanmillerS
            scottalanmiller @wirestyle22
            last edited by

            @wirestyle22 said in Script to Move and Decrypt Files in a Specified Directory:

            Move the encrypted file into an archive.

            Once we have a language, let's go step by step. Where are the files coming from? This is really easy, it's just a mv command, like you had, if it is just going from one directory to another. But if it is doing that, can't you make them get put in the right one in the first place and save that step?

            1 Reply Last reply Reply Quote 0
            • scottalanmillerS
              scottalanmiller @wirestyle22
              last edited by

              @wirestyle22 said in Script to Move and Decrypt Files in a Specified Directory:

              and place it in a specific directory that will be used by the load process

              What's the reason for needing to move it, decrypt it, and move it again? Isn't that unnecessary steps? Or can it not be decrypted where it first gets put?

              wirestyle22W 1 Reply Last reply Reply Quote 0
              • wirestyle22W
                wirestyle22 @scottalanmiller
                last edited by

                @scottalanmiller said in Script to Move and Decrypt Files in a Specified Directory:

                @wirestyle22 said in Script to Move and Decrypt Files in a Specified Directory:

                and place it in a specific directory that will be used by the load process

                What's the reason for needing to move it, decrypt it, and move it again? Isn't that unnecessary steps? Or can it not be decrypted where it first gets put?

                yes, it can't. someone else is dictating where the files and placed and then where they are moved to

                1 Reply Last reply Reply Quote 0
                • scottalanmillerS
                  scottalanmiller
                  last edited by

                  Let's look at this in BASH, because it's way easier...

                  You have files that end in .gpg in a directory now. You want them in a new one, not encrypted, correct?

                  #!/bin/bash
                  for i in $(ls /orig/directory/*.gpg); do
                      gpg --decrypt $i > /new/directory/$i.txt
                  done
                  
                  1 Reply Last reply Reply Quote 2
                  • scottalanmillerS
                    scottalanmiller
                    last edited by

                    Sounds like all you need to do is list the files, loop through the ones that you found, and decrypt.

                    A for loop is the easiest to read, but is much longer. A find would do this too, in a single line. you could make this a one line for command, too.

                    No need for this to be a script, it's really just a single for loop, so just a one line command you can run.

                    1 Reply Last reply Reply Quote 0
                    • scottalanmillerS
                      scottalanmiller
                      last edited by

                      @scottalanmiller said in Script to Move and Decrypt Files in a Specified Directory:

                      for i in $(ls /orig/directory/*.gpg); do
                      gpg --decrypt $i > /new/directory/$i.txt
                      done

                      Here it is as a command....

                      for i in $(ls /orig/directory/*.gpg); do gpg --decrypt $i > /new/directory/$i.txt; done
                      
                      1 Reply Last reply Reply Quote 0
                      • wirestyle22W
                        wirestyle22
                        last edited by wirestyle22

                        This week was a learning experience.

                        #!/usr/bin/env bash
                        source "/home/datatransfer/company/master.sh"
                        encryptedFolderPath="/home/datatransfer/company/in /"
                        decryptedFolderPath="/home/datatransfer/company/out"
                        archiveFolderPath="/home/datatransfer/company/archive"
                        for i in $(ls $encryptedFolderPath.pgp)
                        do
                            gpg --batch --passphrase $PASS --list-only --list-packets --yes $i | grep -q "encrypted"
                            if [ $? != 0 ]; then
                                echo "$i is not a pgp file"
                                continue
                            fi
                            v=${i%.}
                            encryptedFile="$v"
                            fileName=${encryptedFile##/}
                            timeNow=$(date +%Y%m%d%H%M)
                            extension=${fileName##.}
                            newFileName=${fileName%.*}
                            fileWithTimestamp="$newFileName""_""$timeNow.$extension"
                        
                            gpg --batch –passphrase $PASS --yes --decrypt $i > $decryptedFolderPath/$fileWithTimestamp
                        
                            ls -lr $decryptedFolderPath/$fileWithTimestamp
                            if [ $? != 0 ]; then
                                echo "$fileWithTimestamp is not a readable file"
                                continue
                            fi
                        
                            mv $i $archiveFolderPath
                        done
                        

                        Thanks to @scottalanmiller @stacksofplates and my friend Erik

                        1 Reply Last reply Reply Quote 2
                        • 1 / 1
                        • First post
                          Last post