gpt4 book ai didi

mysql - 使用 bash 脚本删除具有文件名模式的文件

转载 作者:太空宇宙 更新时间:2023-11-04 11:16:18 25 4
gpt4 key购买 nike

我有这个 bash 脚本,它每 5 分钟创建一个数据库备份,我使用 crontab 运行它。在一天结束时,我想删除创建的并保留当天创建的最后一个。

脚本内容如下:

#! /bin/bash

DATE=$(date +"%Y%m%d%H%M")
mysqldump -ubackup_user db_to_backup > ~/backup/db_$DATE.sql
tar -zcvf ~/backup/db_$DATE.tar.gz ~/backup/db_$DATE.sql
rm ~/backup/db_$DATE.sql

创建的示例文件:

db_201312272300.tar.gz
db_201312272305.tar.gz
db_201312272310.tar.gz
db_201312272315.tar.gz
db_201312272320.tar.gz
db_201312272325.tar.gz
db_201312272330.tar.gz
db_201312272335.tar.gz
db_201312272340.tar.gz
db_201312272345.tar.gz
db_201312272350.tar.gz
db_201312272355.tar.gz
db_201312280000.tar.gz
db_201312280005.tar.gz
db_201312280010.tar.gz
db_201312280015.tar.gz

它应该在一天结束时留下以下内容:

db_201312280000.tar.gz
db_201312280005.tar.gz
db_201312280010.tar.gz
db_201312280015.tar.gz

并将以下文件复制/移动到不同的目录:

db_201312272355.tar.gz

最佳答案

午夜后,运行以下命令:

old=$(date +"%Y%m%d" -d yesterday)
mv "db_${old}2355.tar.gz" different/directory && rm "db_${old}*.tar.gz"

作为安全预防措施,我将移动和删除命令与 && 连接起来。这样只有当 2355 备份移动成功时,昨天的备份才会被删除。如果您的磁盘空间不足并且不太关心备份完整性,请将 && 替换为 ;(或换行符)。

另外,如果按照问题中的脚本,只有一个文件进入 tar 文件,则 tar 是多余的。您可以将这两行替换为:

mysqldump -ubackup_user db_to_backup | gzip >~/backup/db_$DATE.gz

关于mysql - 使用 bash 脚本删除具有文件名模式的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20811872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com