As I mentioned in this blog posting, I use a UFM Workflow to perform a daily backup of selected directories, encrypt the compressed files then upload the encrypted files to a remote server.
In this blog posting, I will show you how to create a UFM Workflow that will compress the contents of 3 directories (and sub-directories), encrypt the 3 zip files and then use Sftp to upload the 3 files to a remote server. This example is designed for a Windows desktop PC but it could easily be modified for Linux, Mac OS X, Unix, etc.
Step #1: On the Windows PC in the UFM install directory, create a file called ufm_zip_enc_ftp.xml and copy the following into the file:
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE UFM_Workflow SYSTEM "UFM_Workflow.dtd"> <UFM_Workflow> <Global> <Property name="UploadDir" value="G:\Upload" /> </Global> <Actions> <Delete> <File dir="${UploadDir}">*</File> </Delete> <Zip todir="${UploadDir}" tofile="data.zip"> <File>E:\Data</File> </Zip> <Zip todir="${UploadDir}" tofile="eclipse_wk.zip"> <File>F:\eclipse\workspace</File> </Zip> <Zip todir="${UploadDir}" tofile="VSData.zip"> <File>F:\VSData</File> </Zip> <EncryptFile todir="${UploadDir}" tofile="data.enc" keysize="256" passphrase="decrypt_this_NSA..1..can't_touch_this!!"> <File>${UploadDir}\data.zip</File> </EncryptFile> <EncryptFile todir="${UploadDir}" tofile="eclipse_wk.enc" keysize="256" passphrase="decrypt_this_NSA..2..can't_touch_this!!"> <File>${UploadDir}\eclipse_wk.zip</File> </EncryptFile> <EncryptFile todir="${UploadDir}" tofile="VSData.enc" keysize="256" passphrase="decrypt_this_NSA..3..can't_touch_this!!"> <File>${UploadDir}\VSData.zip</File> </EncryptFile> <SFtp xmlfile="sftp_upload.xml" /> </Actions> </UFM_Workflow>
So lets review the 8 actions in the UFM Workflow.
- The 1st action is a Delete Action to cleanup any files from a previous run.
- The 2nd action compresses the contents of the E:\Data directory and sub-directories and write the zip file to the G:\Upload directory.
- The 3rd action compresses the contents of the F:\eclipse\workspace directory and sub-directories and write the zip file to the G:\Upload directory.
- The 4th action compresses the contents of the F:\VSData directory and sub-directories and write the zip file to the G:\Upload directory.
- The 5th action encrypts the data.zip using AES 256-bit encryption and stores the file in the G:\Upload directory.
- The 6th action encrypts the eclipse_wk.zip using AES 256-bit encryption and stores the file in the G:\Upload directory.
- The 7th action encrypts the VSData.zip using AES 256-bit encryption and stores the file in the G:\Upload directory.
- The 8th action uploads the 3 encrypted files to a remote server using Sftp.
Step #2: On the Windows PC, in the sftp directory, create a file called sftp_upload.xml and copy the following into the file:
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE UFM_SFtp SYSTEM "UFM_SFtp.dtd"> <UFM_SFtp> <Hostname>10.10.10.10</Hostname> <UserID>MyUserID</UserID> <Password>mypwd</Password> <SFtpCmds> <Put remotedir="secureDir"> <File dir="G:\Upload">*.enc</File> </Put> </SFtpCmds> </UFM_SFtp>
Step #3: On the Windows PC, start UFM to run the Workflow:
./ufm.sh ufm_zip_enc_ftp.xml
UFM will start, compress the selected directories, encrypt the compressed files and then upload the files to a remote server.
The last item is to create a Window’s Task Scheduler entry and have the UFM Workflow run everyday at a particular time.
This blog demonstrates how easy it is to backup selected directories to a remote server. Hopefully, this will motive people to do daily backups of their important files.
Regards,
Roger Lacroix
Capitalware Inc.