Originally published November 7, 2016 @ 11:22 pm
I almost never delete anything (not on purpose anyway). Having said that, sometimes I do need to find old data on a server and offload it to a NAS. Agedu has been around for ages. It’s a great tool for visually identifying directories on the server containing data that may be ripe for archiving.
Install agedu
and a couple of other utilities that may come in handy.
yum -y install agedu telnet coreutils
As a test, run agedo
for the /opt
filesystem:
agedu --no-cross-fs --progress --scan /opt
Now launch the Web UI to view the report. The syntax below will determine your machine’s primary IP, pick an available port, run the UI without authorization requirements (so only use on the internal network), and automatically kill the Web UI after a minute.
timeout 60 agedu --web --address $(dig +short $(hostname) | head -1):\ $(for port in $(seq 8080 65000); do echo -ne "5" | telnet $(dig +short $(hostname) | head -1) \ ${port} > /dev/null 2>&1; [ $? -eq 1 ] && echo ${port} && break; done) --auth none
The Web UI example is below.
Additional options from agedu --help
usage: agedu [options] action [action...] actions: -s, --scan directory scan and index a directory -w, --web serve HTML reports from a temporary web server -t, --text subdir print a plain text report on a subdirectory -R, --remove remove the index file -D, --dump dump the index file on stdout -L, --load load and index a dump file -S, --scan-dump directory scan only, generating a dump -H, --html subdir print an HTML report on a subdirectory --cgi do the right thing when run from a CGI script options: -f, --file filename [most modes] specify index file --cross-fs [--scan] cross filesystem boundaries --no-cross-fs [--scan] stick to one filesystem --prune wildcard [--scan] prune files matching pattern --prune-path wildcard [--scan] prune pathnames matching pattern --exclude wildcard [--scan] exclude files matching pattern --exclude-path wildcard [--scan] exclude pathnames matching pattern --include wildcard [--scan] include files matching pattern --include-path wildcard [--scan] include pathnames matching pattern --progress [--scan] report progress on stderr --no-progress [--scan] do not report progress --tty-progress [--scan] report progress if stderr is a tty --dir-atime [--scan,--load] keep real atimes on directories --no-dir-atime [--scan,--load] fake atimes on directories --no-eof [--web] do not close web server on EOF --mtime [--scan] use mtime instead of atime --files [--web,--html,--text] list individual files -r, --age-range age[-age] [--web,--html] set limits of colour coding -o, --output filename [--html] specify output file or directory name --address addr[:port] [--web] specify HTTP server address --auth type [--web] specify HTTP authentication method --auth-file filename [--web] read HTTP Basic user/pass from file --auth-fd fd [--web] read HTTP Basic user/pass from fd -d, --depth levels [--text,--html] recurse to this many levels -a, --age age [--text] include only files older than this also: -h, --help display this help text -V, --version report version number --licence display (MIT) licence text
Experienced Unix/Linux System Administrator with 20-year background in Systems Analysis, Problem Resolution and Engineering Application Support in a large distributed Unix and Windows server environment. Strong problem determination skills. Good knowledge of networking, remote diagnostic techniques, firewalls and network security. Extensive experience with engineering application and database servers, high-availability systems, high-performance computing clusters, and process automation.