How to Clean up Trace and Audit Files for Multiple Homes

I’ve been working on a simple method to clean up audit and trace files for multiple homes.
Let’s see how grid and database homes can be found from oratab.
$ sort -u -t : -k 2,2 /etc/oratab | grep -v "^#" | awk -F ":" '{print $2}' /u01/app/19.0.0.0/grid /u02/app/oracle/product/12.2.0/dbhome_2 /u02/app/oracle/product/12.2.0/dbhome_3 /u02/app/oracle/product/12.2.0/dbhome_4 /u02/app/oracle/product/12.2.0/dbhome_6 /u02/app/oracle/product/12.2.0/dbhome_7 /u02/app/oracle/product/19.0.0.0/dbhome_2
Here is the cron job to remove trace and audit files from grid and database homes:
49 14 * * * find /u01/app/grid/diag/crs/*/crs/trace -name "*.tr?" -mtime +30 -exec rm -f {} \; 49 14 * * * find /u02/app/oracle/product/*/*/rdbms/audit -name "*.aud" -mtime +366 -exec rm -f {} \; 49 14 * * * find /u02/app/oracle/product/*/*/rdbms/log -name "*.tr?" -mtime +200 -exec rm -f {} \; 49 14 * * * find /u02/app/oracle/product/*/*/rdbms/log -name "cdmp*" -mtime +200 -exec rm -rf {} \; 49 14 * * * find /u02/app/oracle/diag/rdbms/*/*/cdump -name "core*" -mtime +200 -exec rm -rf {} \;
Let’s take a look at what the * in the directory path represents.
ls -ld /u01/app/grid/diag/crs/*/crs/trace * = hostname Example: $ ls -ld /u01/app/grid/diag/crs/*/crs/trace drwxrwxr-x 2 grid oinstall 135168 Mar 26 18:40 /u01/app/grid/diag/crs/hostname/crs/trace ls -ld /u02/app/oracle/product/*/*/rdbms/audit */* = version/dbhome Example: $ ls -ld /u02/app/oracle/product/*/*/rdbms/audit drwxr-xr-x 9 oracle oinstall 614400 Mar 26 18:32 /u02/app/oracle/product/12.2.0/dbhome_2/rdbms/audit drwxr-xr-x 2 oracle oinstall 253952 Mar 26 18:40 /u02/app/oracle/product/12.2.0/dbhome_3/rdbms/audit drwxr-xr-x 2 oracle oinstall 294912 Mar 26 18:32 /u02/app/oracle/product/12.2.0/dbhome_4/rdbms/audit drwxr-xr-x 4 oracle oinstall 94208 Mar 26 18:32 /u02/app/oracle/product/12.2.0/dbhome_6/rdbms/audit drwxr-xr-x 2 oracle oinstall 4096 Mar 1 02:31 /u02/app/oracle/product/12.2.0/dbhome_7/rdbms/audit drwxr-xr-x 3 oracle oinstall 5783552 Mar 26 18:32 /u02/app/oracle/product/19.0.0.0/dbhome_2/rdbms/audit ls -ld /u02/app/oracle/diag/rdbms/*/*/cdump */* = db_unique_name/db_name Example: $ ls -ld /u02/app/oracle/diag/rdbms/*/*/cdump drwxr-xr-x 2 oracle asmadmin 4096 Sep 3 2020 /u02/app/oracle/diag/rdbms/db_unique_name/db_name/cdump drwxr-xr-x 2 oracle asmadmin 4096 Sep 2 2020 /u02/app/oracle/diag/rdbms/db_unique_name/db_name/cdump drwxr-xr-x 2 oracle asmadmin 4096 Sep 21 2020 /u02/app/oracle/diag/rdbms/db_unique_name/db_name/cdump drwxr-xr-x 2 oracle asmadmin 4096 Feb 17 02:35 /u02/app/oracle/diag/rdbms/db_unique_name/db_name/cdump drwxr-xr-x 2 oracle asmadmin 4096 Sep 21 2020 /u02/app/oracle/diag/rdbms/db_unique_name/db_name/cdump drwxr-xr-x 2 oracle asmadmin 4096 Feb 18 21:51 /u02/app/oracle/diag/rdbms/db_unique_name/db_name/cdump drwxr-xr-x 2 oracle asmadmin 4096 Sep 25 07:13 /u02/app/oracle/diag/rdbms/db_unique_name/db_name/cdump ls -l /u02/app/oracle/product/*/*/rdbms/log/*.tr? */* = version/dbhome Example: $ ls -l /u02/app/oracle/product/*/*/rdbms/log/*.tr? -rw-r----- 1 oracle asmadmin 868 Feb 19 17:41 /u02/app/oracle/product/12.2.0/dbhome_2/rdbms/log/*******2_ora_57506.trc -rw-r----- 1 oracle asmadmin 868 Dec 4 18:06 /u02/app/oracle/product/12.2.0/dbhome_2/rdbms/log/*******2_ora_66404.trc -rw-r----- 1 oracle asmadmin 862 Mar 24 19:38 /u02/app/oracle/product/12.2.0/dbhome_3/rdbms/log/*****2_ora_217755.trc -rw-r----- 1 oracle asmadmin 869 Feb 18 21:51 /u02/app/oracle/product/12.2.0/dbhome_4/rdbms/log/*****2_ora_351349.trc -rw-r----- 1 oracle asmadmin 867 Feb 19 17:41 /u02/app/oracle/product/12.2.0/dbhome_4/rdbms/log/*****2_ora_57519.trc -rw-r----- 1 oracle asmadmin 866 Mar 1 20:01 /u02/app/oracle/product/12.2.0/dbhome_6/rdbms/log/******2_ora_167170.trc -rw-r----- 1 oracle asmadmin 831 Mar 1 02:31 /u02/app/oracle/product/12.2.0/dbhome_7/rdbms/log/*****2_ora_314160.trc
That’s how I clean up old audit and trace files.
I hope this can help you, too.
If you have any questions or thoughts, please leave them in the comments.