Reputation: 1528
I have the following problem: I have a local .zip
file and a .zip
file located on a server. I need to check if the .zip
file on the server is different from the local one; if they are not I need to pull the new one from the server. My question is how do I compare them without downloading the file from the server and comparing them locally?
I could create an MD5 hash for the zip file on the server when creating the .zip
file and then compare it with the MD5 of my local .zip
file, but is there a simpler way?
Upvotes: 2
Views: 4770
Reputation: 123632
Short answer: You can't.
Long answer: To compare with the zip file on the server, someone has to read that file. Either you can do that locally, which would involve pulling it, or you can ask the server to do it for you. Can you run code on the server?
If you can run Python on the server, why not hash the file and compare hashes?
import hashlib
with open( <path-to-file>, "rb" ) as theFile:
m = hashlib.md5( )
for line in theFile:
m.update( line )
with open( <path-to-hashfile>, "wb" ) as theFile:
theFile.write( m.digest( ) )
and then compare the contents of hashfile
with a locally-generated hash?
You asked for a simpler way. Think about this in an abstract way for a moment:
Therefore, you need to do some sort of hashing. Given that, I think the above is pretty simple.
Upvotes: 2
Reputation: 1394
You can log in using ssh and make a md5 hash for the file remotely and a md5 hash for the current local file. If the md5s are matching the files are identicaly, else they are different.
Upvotes: 0
Reputation: 1876
I would like to know how you intend to compare them locally, if it were the case. You can apply the same logic to compare them remotely.
Upvotes: 0