我编写了一个脚本将目录(不是文件)从源目录移动到目标目录,但是即使移动本身成功,我也会得到以下错误:
find: '/u01/app/oracle/diag/asm/+asm/+ASM1/trace/cdmp_dir_30days': No such file or directory
find /u01/app/oracle/diag/asm/+asm/+ASM1/trace/ -name 'cdmp*' -mtime +7 -exec mv '{}' /home/oracle/dba/backup/logs/l01nsvl-dtdao01/diag/asm/+asm/+ASM1/trace ';'
find: `/u01/app/oracle/diag/asm/+asm/+ASM1/trace/cdmp_dir_30days': No such file or directory
find: `/u01/app/oracle/diag/asm/+asm/+ASM1/trace/cdmp_dir_180days': No such file or directory
find: `/u01/app/oracle/diag/asm/+asm/+ASM1/trace/cdmp_dir_7days': No such file or directory
手动执行输出
[oracle@l01nsvl-dtdao01:+ASM1:/u01/app/oracle/diag/asm/+asm/+ASM1/trace]$ ls -ltr $SOURCE
total 3660
drwxr-----. 2 oracle oinstall 4096 Mar 12 2019 cdmp_dir_180days/
drwxr-xr-x. 2 oracle oinstall 20480 Aug 29 05:17 cdmp_dir_30days/
drwxr-xr-x. 2 oracle oinstall 36864 Sep 18 13:22 cdmp_dir_7days/
-rw-r-----. 1 oracle oinstall 3664330 Sep 27 10:52 alert_old.log
-rw-r-----. 1 oracle oinstall 2899 Sep 28 14:52 alert_+ASM1.log
-rwx------. 1 oracle oinstall 230 Sep 28 15:11 b*
-rwx------. 1 oracle oinstall 395 Sep 28 15:25 a*
[oracle@l01nsvl-dtdao01:+ASM1:/u01/app/oracle/diag/asm/+asm/+ASM1/trace]$ ls -ltr $TARGET
total 0
[oracle@l01nsvl-dtdao01:+ASM1:/u01/app/oracle/diag/asm/+asm/+ASM1/trace]$ find /u01/app/oracle/diag/asm/+asm/+ASM1/trace/ -name 'cdmp*' -mtime +7 -exec mv '{}' /home/oracle/dba/backup/logs/l01nsvl-dtdao01/diag/asm/+asm/+ASM1/trace ';'
find: `/u01/app/oracle/diag/asm/+asm/+ASM1/trace/cdmp_dir_30days': No such file or directory
find: `/u01/app/oracle/diag/asm/+asm/+ASM1/trace/cdmp_dir_180days': No such file or directory
find: `/u01/app/oracle/diag/asm/+asm/+ASM1/trace/cdmp_dir_7days': No such file or directory
[oracle@l01nsvl-dtdao01:+ASM1:/u01/app/oracle/diag/asm/+asm/+ASM1/trace]$ ls -ltr $SOURCE
total 3600
-rw-r-----. 1 oracle oinstall 3664330 Sep 27 10:52 alert_old.log
-rw-r-----. 1 oracle oinstall 2899 Sep 28 14:52 alert_+ASM1.log
-rwx------. 1 oracle oinstall 230 Sep 28 15:11 b*
-rwx------. 1 oracle oinstall 395 Sep 28 15:25 a*
[oracle@l01nsvl-dtdao01:+ASM1:/u01/app/oracle/diag/asm/+asm/+ASM1/trace]$ ls -ltr $TARGET
total 88
drwxr-----. 2 oracle oinstall 256 Mar 12 2019 cdmp_dir_180days/
drwxr-xr-x. 2 oracle oinstall 36864 Aug 29 05:17 cdmp_dir_30days/
drwxr-xr-x. 2 oracle oinstall 45056 Sep 18 13:22 cdmp_dir_7days/
我认为文件名有问题,比如一个不可打印的字符,你能分享一下下面命令输出的代码格式,以便我们确认吗?
find /u01/app/oracle/diag/asm/+asm/+ASM1/trace/ -name 'cdmp*' -mtime +7 | od -c
我还建议只添加-type d
标志来过滤目录。