diff --git a/blog - fun with find.md b/blog - fun with find.md index 91771ff..f41c39f 100644 --- a/blog - fun with find.md +++ b/blog - fun with find.md @@ -1,47 +1,62 @@ -# Fun with Find - -## Find the total size of certain files within a directory branch - -```bash -find -type f -iname '*-bin*' -exec du -ch {} + -``` - ---- - -## Find files larger than... - - -### 100M: - - -```bash -find . -type f -size +100000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }' -``` - -### 1G: - - -```bash -find . -type f -size +1000000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }' -``` - -...and so on... - ---- - -## Find, archive and purge old files - -```bash -# Find disk space used by logfiles older that 360 days -find /var/log/hbase -type f -iname "*log*" -mtime +360 -exec du -ch {} + - -# Archive those files to another location -find /var/log/hbase -type f -iname "*log*" -mtime +360 -print0 | xargs -0 tar cfz /tmp/hbase-logs.tgz - -# Delete the original files -find /var/log/hbase -type f -iname "*log*" -mtime +360 -delete -``` - -Replace `hbase` with the log directory you want to search. If you don't need to save the archives anywhere, skip step two. - -[Reference](https://www.cyberciti.biz/faq/linux-unix-find-tar-files-into-tarball-command/) \ No newline at end of file +# Fun with Find + +## Find the total size of certain files within a directory branch + +```bash +find -type f -iname '*-bin*' -exec du -ch {} + +``` + +--- + +## Find files larger than... + + +### 100M: + + +```bash +find . -type f -size +100000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }' +``` + +### 1G: + + +```bash +find . -type f -size +1000000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }' +``` + +...and so on... + +--- + +## Find, archive and purge old files + +```bash +# Find disk space used by logfiles older that 360 days +find /var/log/hbase -type f -iname "*log*" -mtime +360 -exec du -ch {} + + +# Archive those files to another location +find /var/log/hbase -type f -iname "*log*" -mtime +360 -print0 | xargs -0 tar cfz /tmp/hbase-logs.tgz + +# Delete the original files +find /var/log/hbase -type f -iname "*log*" -mtime +360 -delete +``` + +Replace `hbase` with the log directory you want to search. If you don't need to save the archives anywhere, skip step two. + +[Reference](https://www.cyberciti.biz/faq/linux-unix-find-tar-files-into-tarball-command/) + +--- + +## Find files by group and mode + +Note: *from Teachingbooks web directory permission fix.* at OverDrive + +Find files that have `group: www-data` and current `permissions: 644`, then update the permissions to 664 + +```bash +find -type f -group www-data -perm 644 -exec ls -al {} \; +find -type f -group www-data -perm 644 -exec chmod g+w {} \; +``` + +[Reference](https://ostechnix.com/find-files-based-permissions/) \ No newline at end of file