Removing Hidden NFS Files

Hidden NFS files, .nfsxxx , are created on NFS Version 3 servers if a process on an NFS client removes a file which is still open by another process. If the NFS client crashes, the .nfs files are not removed. The .nfs files are removed using the nfsfind script in the root crontab file. The root cron job executes the nfsfind script every Sunday at 3:15 am.

Starting with Oracle Solaris 11.4, the svc:/network/nfs/cleanup service removes the hidden NFS files. The svc:/network/nfs/cleanup service depends on the svc:/network/nfs/server service. Therefore, you must ensure that the NFS service is online for the NFS cleanup service to perform its scheduled action.

When you upgrade a system to Oracle Solaris 11.4 from an earlier release, the treatment of the nfsfind cron job depends on whether changes have been made to the root crontab file. The upgrade to Oracle Solaris 11.4 might encounter the following scenarios:

  • If there are no changes, the nfsfind cron job is removed at upgrade.

  • If there are changes to the root crontab but not to the nfsfind cron job, the first run of the nfs/cleanup service removes the nfsfind cron job from root crontab.

  • If there are changes to the nfsfind cron job, the first run of the nfs/cleanup service comments out the nfsfind job and changes the state of the nfs/cleanup service to DEGRADED. You can remove the nfsfind cron job from the root crontab after you change the schedule of the nfs/cleanup service to match the nfsfind cron job. You can use the svcadm clear command to move the nfs/cleanup service out of the DEGRADED state.