For some reason files changed on a server. Site down, always fun.
Restored a backup all good. This site did not have git on the server. But I still wanted to monitor the files for changes.
The one I landed on was:
find ./ -type f -name "*.php" -not -path "./wp-content/cache/*" -exec md5sum {} + | sort -k 2 | md5sum
Let’s dissect
What does this command do step by step
In the current directory and sub directory, list all files (not directories)
find ./ -type f
Limit it to php files
find ./ -type f -name "*.php"
Exclude the files in the caching directory, a bit weird syntax but it’s the one.
find ./ -type f -name "*.php" -not -path "./wp-content/cache/*"
For each file found run the command md5sum
making a sum per file.
find ./ -type f -name "*.php" -not -path "./wp-content/cache/*" -exec md5sum {} +
Next we sort the output based on filepath+name.
We sort because find might return file order inconsistently.
find ./ -type f -name "*.php" -not -path "./wp-content/cache/*" -exec md5sum {} + | sort -k 2
Finally we create the grand total sumcheck based on all other sumchecks.
find ./ -type f -name "*.php" -not -path "./wp-content/cache/*" -exec md5sum {} + | sort -k 2 | md5sum
Sources:
- https://stackoverflow.com/a/1658554/933065
- https://unix.stackexchange.com/a/35834