麻烦写一个备份并清理整个用户90天前的文件的shell脚本
时间: 2023-07-13 14:31:35 浏览: 41
好的,以下是一个备份并清理用户90天前文件的Shell脚本:
```
#!/bin/bash
# 备份目录
backup_dir="/path/to/backup/dir"
# 需要备份的目录
source_dir="/home"
# 备份文件名
backup_file="backup-$(date +%Y%m%d-%H%M%S).tar.gz"
# 查找并备份90天前修改过的文件
find $source_dir -type f -mtime +90 -print0 | xargs -0 tar -czf $backup_dir/$backup_file
# 删除90天前的文件
find $source_dir -type f -mtime +90 -delete
```
这个脚本会在指定的备份目录下创建一个名为 backup-年月日-时分秒.tar.gz 的备份文件,并备份所有90天前修改过的文件。然后,它会查找并删除所有90天前的文件。
你可以将 backup_dir 和 source_dir 变量替换为你实际的备份目录和需要备份的目录,然后将脚本保存为 .sh 文件,并设置为可执行文件,即可运行。
相关问题
麻烦写一个备份并清理整个用户90天前的文件的shell脚本,备份日期为90天前的日期
好的,以下是一个备份并清理用户90天前文件的shell脚本:
```bash
#!/bin/bash
# 设置备份目录和备份日期
backup_dir="/backup"
backup_date=$(date --date="90 days ago" +%Y%m%d)
# 创建备份目录
mkdir -p $backup_dir
# 备份90天前的文件
find /home -type f -mtime +90 -print0 | xargs -0 tar -czf $backup_dir/files_$backup_date.tar.gz
# 清理90天前的文件
find /home -type f -mtime +90 -delete
```
这个脚本首先设置了备份目录和备份日期,然后创建了备份目录。接着,使用 `find` 命令查找用户目录下90天前的文件,并使用 `tar` 命令将它们归档并压缩到备份目录中。最后,使用 `find` 命令删除90天前的文件。
请注意,这个脚本只备份和清理90天前的文件,如果你需要备份和清理其他时间段的文件,可以修改 `find` 命令中的 `-mtime` 参数。
写一个删除超过七天备份文件的shell脚本
以下是一个删除超过七天备份文件的Shell脚本示例:
```bash
#!/bin/bash
backup_dir="/path/to/backup/directory"
# 获取当前日期
current_date=$(date +%s)
# 遍历备份目录中的文件
for file in "$backup_dir"/*; do
# 获取文件的修改时间
modified_date=$(stat -c %Y "$file")
# 计算文件的存在时间(以秒为单位)
time_diff=$((current_date - modified_date))
days_diff=$((time_diff / 86400)) # 一天有86400秒
# 如果文件存在时间超过七天,则删除文件
if [ $days_diff -gt 7 ]; then
rm "$file"
echo "删除文件: $file"
fi
done
```
在上面的脚本中,需要将`/path/to/backup/directory`替换为你实际的备份目录路径。脚本会遍历备份目录中的所有文件,获取每个文件的修改时间,并计算文件存在的天数。如果文件存在时间超过七天,则使用`rm`命令删除该文件,并输出删除的文件路径。
请注意,在运行脚本之前,请确保你有足够的权限来删除文件。另外,强烈建议在运行该脚本之前进行测试,并确保没有误删重要的备份文件。