Unix Shell Scripting

Finding file counts

For Linux:
cd $ORACLE_BASE/admin

-- For Linux
find -maxdepth 2 -type d | while read dir; do 
    count=$(find "$dir" -maxdepth 2 -iname \*.aud | wc -l)
    echo "$count ; $dir"
done | grep adump | sort -n

Getting around too many arguments:

This method is scalable, does not have issues with argument list limits, and works well for millions of files. This example looks for files that match *.aud.
for f in *.aud; do rm "$f"; done
You can leverage power of the find command with backticks. This produces a list of files that are fed to the 'do' block one by one.
for f in `find *.aud -mtime +60`; do rm "$f"; done

Delete files older than 60 days

Note: This method can have issues with argument list lengths. It may error out if too many files are fed to the exec command, in this case rm.
find *.aud -mtime +60 -exec rm {} \;
You can combine it with xargs to get around the argument list length limit:
find . -name "*.aud" -mtime +60 -print0 | xargs -0 rm

Unlocking Accounts on OEL

pam_tally2 --user oracle --reset