How to verify that the checksum of destination files remain unchanged
Q: Is it possible to verify that a file’s encryption (SHA) in the source folder remains unchanged when it is transferred to the destination folder? Additionally, send an email if anything has changed.
We want to know when a change is made to the file after it has been moved to the destination folder. Additionally, get an email notification if there is a change. Another software should pull the file, we ask to check that no changes were made to the file until it transferred from the destination folder .
A: We needed two Rules to achieve this.
- Rule 1: Will search for the Source files to move. When a file is found, it will add some information (filename, checksum, date) about this file to a separate data text file.
- Rule 2: Will check the Destination folder of the first Rule. It will search for moved files and if a file is found (not yet picked up), it will compare its checksum with the information found in the data text file. If there is a difference, Rule 2 will return an error which will trigger an email event.
1. First Rule: ‘OPC Move’
Source must be a Windows folder or share:
Function Setup, we enabled ‘Exit Cyclus on Error’ as Destination option:
Destination Setup, we added two Destinations:
- Pascal Script as Destination
- WIN (Windows Folder or Share) as Destination
First Destination: Pascal Script:
Do not forget to adjust the ctChecksumFile const. This is the data file where we keep checksum information about the files we moved.
Important:
- The path of this file should already exist, we’ll create the file.
- This path should be a local path on the system where Limagito File Mover is running.
- It should NOT be the same as the Source or Destination Path, use a folder that is only used for this purpose.
You can download the script: here
Second Destination, is the actual Destination folder of the Source files. This is where the other software will pull the files from. Destination must be a Windows folder or share.
2. Second Rule: ‘OPC Checksum Check’
The Source of this second Rule is the Destination of the First ‘Move’ Rule, this is important. This Second Rule will search for moved files and if a file is found (not yet picked up), it will compare its checksum with the information found in the data text file. If there is a difference, Rule 2 will return an error which will trigger an email event.
As Schedule we used a timer and set it to every 5 seconds:
Function Setup: set ‘Rule Function’ to copy. We will not copy any files but this needed by the internal process.
As Destination, we added a ‘Pascal Script’. This script will compare the checksum of the files found with the information in the data text file. If there is a difference it will return an error which will trigger an email event.
Destination: Pascal Script:
Do not forget to adjust the ctChecksumFile const. This is the data file where checksum information about the moved files by the first ‘Move’ Rule is kept.
Important: Use exactly the same file as you did in the Pascal Script of the first ‘Move’ Rule.
You can download the script: here
Open our Rule events option:
With ‘On Error’ selected > Options Tab > Enable ‘File Error event memory’. This way you only get one email per filename.
Email Setup:
RunTime Log Result:
#managedfiletransfer #filetransfer #filemanagement
If you need any help with this ‘checksum of destination files’ request, please let us know.
Best Regards,
Limagito Team