Shell 用于查找、删除和打印已删除文件的脚本
Shell script to Find ,Remove and print files removed
我正在创建一个脚本来维护应该只保留文件 7 天的数据库备份目录。
这是我创造的
set +vx
BACKUP_DIR=/mounts/prd
myarray=(`cat /u01/postgres_prod_server.txt`)
for SERVER in "${myarray[@]}"
do
echo " SERVER: $SERVER"
if [ -d $BACKUP_DIR/$SERVER ]; then
find $BACKUP_DIR/$SERVER/5431/ -type f -name '*.tar' -mtime +7 -exec rm -rf {} \; | tee /tmp/log.txt | wc -l | xargs echo "Files deleted:" >> /tmp/log.txt;
find $BACKUP_DIR/$SERVER/5432/ -type f -name '*.tar' -mtime +7 -exec rm -rf {} \; | tee /tmp/log1.txt | wc -l | xargs echo "Files deleted:" >> /tmp/log1.txt;
fi
done
这是我想要做的,但它不起作用。
1.i无法打印查找命令正在删除的内容并发送到日志文件。
-exec
不会打印任何内容,但您可以使用 -print
选项来执行此操作。参见 https://unix.stackexchange.com/a/503530/527050。
此外,...| tee /tmp/log.txt
将截断日志文件,因此您需要添加选项 -a
以保留以前的日志。
最终脚本如下所示:(日志文件的路径被使用了两次,因此您可能希望将其存储在变量中。)
LOG_FILE=/tmp/log.txt
SEARCH_DIR="$BACKUP_DIR/$SERVER/5431/"
find "${SEARCH_DIR}" -type f -name '*.tar' -mtime +7 \
-exec rm -rf {} \; -print | \
tee -a "${LOG_FILE}" | \
wc -l | \
xargs echo "Files deleted:" >> "${LOG_FILE}";
我正在创建一个脚本来维护应该只保留文件 7 天的数据库备份目录。
这是我创造的
set +vx
BACKUP_DIR=/mounts/prd
myarray=(`cat /u01/postgres_prod_server.txt`)
for SERVER in "${myarray[@]}"
do
echo " SERVER: $SERVER"
if [ -d $BACKUP_DIR/$SERVER ]; then
find $BACKUP_DIR/$SERVER/5431/ -type f -name '*.tar' -mtime +7 -exec rm -rf {} \; | tee /tmp/log.txt | wc -l | xargs echo "Files deleted:" >> /tmp/log.txt;
find $BACKUP_DIR/$SERVER/5432/ -type f -name '*.tar' -mtime +7 -exec rm -rf {} \; | tee /tmp/log1.txt | wc -l | xargs echo "Files deleted:" >> /tmp/log1.txt;
fi
done
这是我想要做的,但它不起作用。
1.i无法打印查找命令正在删除的内容并发送到日志文件。
-exec
不会打印任何内容,但您可以使用 -print
选项来执行此操作。参见 https://unix.stackexchange.com/a/503530/527050。
此外,...| tee /tmp/log.txt
将截断日志文件,因此您需要添加选项 -a
以保留以前的日志。
最终脚本如下所示:(日志文件的路径被使用了两次,因此您可能希望将其存储在变量中。)
LOG_FILE=/tmp/log.txt
SEARCH_DIR="$BACKUP_DIR/$SERVER/5431/"
find "${SEARCH_DIR}" -type f -name '*.tar' -mtime +7 \
-exec rm -rf {} \; -print | \
tee -a "${LOG_FILE}" | \
wc -l | \
xargs echo "Files deleted:" >> "${LOG_FILE}";