gpt4 book ai didi

bash - 通过 Cron 作业上传当天的备份而不是所有文件

转载 作者:行者123 更新时间:2023-12-04 19:31:07 25 4
gpt4 key购买 nike

我有一个在 Centos 7 上运行的 VPS,并创建了一个 cron 作业来转储我的数据库(Sql 8.0)并创建一个 tar备份我整个网站的文件,这每天都在进行
我想创建另一个 bash/cron 作业来连接到我的备份服务器并上传存储在我的 VPS 上的那些备份文件。
问题是,我不能让它只上传最新的文件,而不是整个文件,因为每周会有 7 次备份。
我希望它只上传今天的文件,而不是所有可用的文件。
我应该使用 rsync ?
到目前为止,这是我的 bash:

#!/bin/sh
USERNAME="ftp user"
PASSWORD="ftp password"
SERVER="IP or domain"

# local directory to pickup *.tar.gz file
FILE="/path/"

# remote server directory to upload backup
BACKUPDIR="/pro/backup/sql"

# login to remote server
ftp -n -i $SERVER <<EOF
user $USERNAME $PASSWORD
cd $BACKUPDIR
mput $FILE/*.tar.gz
quit
EOF

最佳答案

您可以将 find 与 -ctime 一起使用搜索 .tar.gz文件在过去 7 天内更改,然后循环查看结果,对每个文件进行 ftping。将此逻辑与您现有的解决方案一起使用:

#!/bin/sh
USERNAME="ftp user"
PASSWORD="ftp password"
SERVER="IP or domain"

# local directory to pickup *.tar.gz file
FILE="/path/"

# remote server directory to upload backup
BACKUPDIR="/pro/backup/sql"

while read fil;
do
# login to remote server
ftp -n -i $SERVER <<EOF
user $USERNAME $PASSWORD
cd $BACKUPDIR
mput "$FILE/$fil"
quit
EOF
done < "$(find $FILE -ctime -7 -name "*.tar.gz")"

关于bash - 通过 Cron 作业上传当天的备份而不是所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66409474/

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