我想创建一个具有当前日期的文件夹,并将文件本地ec2实例复制到新创建的文件夹中,我想每天自动执行此操作

时间:2019-05-21 21:42:28

标签: bash amazon-web-services amazon-s3 backup unix-timestamp

我正在尝试自动执行备份过程,因此在我当前的ec2 Linux实例中,在/var/opt/.../backup-daily文件夹中,它们将是jar文件,因此我希望将它们复制到新创建的文件中带有当前时间戳的文件夹,然后压缩文件,然后将zip文件复制到s3存储桶中,稍后我要删除已有90天的文件夹,请为我提供Linux脚本

我正在手动更新此过程,但是我需要一个每天在每天10:00运行的脚本。老板要求我编写一个脚本以使其自动化

retentionDate=(datetime.now() - timedelta(days=90)).date()
sourceDirectory="give the directory where folder will be created with dateandtime"

我无法自动执行此过程,我需要做的是创建一个带有时间戳的新文件夹,并将所有jar文件从备份文件夹复制到带有时间戳的文件夹,然后将该文件夹压缩,然后上传放入s3存储桶,并在90天后删除文件

1 个答案:

答案 0 :(得分:0)

尝试此脚本并进行一些更改:

#!/bin/bash
origin_dir="/var/opt/backup"
dest_dir=$(date +"/data/bkp_%F" -u)
log=$(date +"/data/bkp_%F.log" -u)

#send every output to log file
exec >> $log 2>&1

#copy the files do newer timestamped dir
cp -v $origin_dir/*.jar $dest_dir/

#zip files
bzip2 -v --compress --best $dest_dir/*.jar

#delete older dir with more than 90 days
find /data/ -type d -name 'bkp_*' -mtime +90 -exec rm -r -v {} \;