删除20天内的文件
时间: 2024-01-21 16:02:21 浏览: 9
好的,您可以使用以下命令删除20天内的文件:
```
find /path/to/directory -type f -mtime +20 -exec rm {} \;
```
这将删除位于指定目录下的所有文件,其修改时间超过20天。请确保替换 `/path/to/directory` 为您要删除文件的目录路径。
相关问题
帮我写一个文件到了20天自动删除的 shell脚本
好的,以下是一个简单的 shell 脚本,可以实现在文件创建后 20 天自动删除该文件:
```bash
#!/bin/bash
# 设置文件名和删除时间
file_name="example.txt"
delete_after_days=20
# 获取文件的创建时间
create_time=$(stat -c %Y $file_name)
# 获取当前时间戳
now=$(date +%s)
# 计算文件已经存在的天数
days=$(( (now - create_time) / 86400 ))
# 判断文件是否已经存在指定天数
if [ $days -ge $delete_after_days ]; then
# 如果是,则删除文件
rm $file_name
echo "The file $file_name has been deleted."
else
# 如果不是,则输出剩余天数
days_left=$(( delete_after_days - days ))
echo "The file $file_name will be deleted in $days_left days."
fi
```
在这个脚本中,你需要设置文件名和需要删除的天数。脚本会获取文件的创建时间,计算文件已经存在的天数,并判断是否需要删除该文件。如果文件存在指定的天数,脚本将删除该文件,否则输出剩余天数。你可以将该脚本保存为 .sh 文件,并使用 chmod 命令添加执行权限,然后运行它。
DB2 数据库 写一个每天20:00备份脚本 将备份文件放在 /data/backup目录下 定时任务删除七天前的备份文件
可以的,以下是备份脚本的代码:
```
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_PATH='/data/backup/'
DB_NAME='your_db_name'
USER='your_username'
PASS='your_password'
# create backup folder if not exists
if [ ! -d "$BACKUP_PATH" ]; then
mkdir "$BACKUP_PATH"
fi
# backup database
docker exec db2_container sh -c "source /home/db2user/sqllib/db2profile;db2 backup database $DB_NAME to $BACKUP_PATH compress"
# rename backup file to include datetime
mv $BACKUP_PATH$DB_NAME.0.dmp $BACKUP_PATH$DB_NAME.$DATE.dmp
# delete backups older than 7 days
find $BACKUP_PATH -type f -name "$DB_NAME.*.dmp" -mtime +7 -exec rm {} +
```
请将 `your_db_name`、`your_username` 和 `your_password` 替换成实际的数据库名称、用户名和密码。还需根据实际情况修改容器名称、备份路径等参数。
然后,将这个脚本保存为 `backup_script.sh`,并确保可执行权限。可以使用以下命令添加定时任务:
```
crontab -e
```
在文件末尾添加以下一行:
```
0 20 * * * /path/to/your/backup_script.sh >/dev/null 2>&1
```
确保修改路径和文件名,并保存文件。这将在每天晚上的 8 点执行备份脚本,并将备份文件放在 `/data/backup` 目录下,并删除七天前的备份文件。