繁体   English   中英

如何为此脚本添加循环以运行多个作业运行

[英]how can i add a loop to this script to run through multipul job runs

我已经编写了这个用于备份到我们的AWS Glacier帐户的基本bash脚本,它适用于1个项目但不是每个项目都有1个脚本我想要做的是使用这个1脚本批量处理由multipul配置控制的备份运行目录中的文件说“/ usr / local / src / glacier / * project1.cfg project2.cfg

这些cfg文件将包含aws信用证以及我脚本中当前配置部分中的相应信息,因为每个项目都会有所不同。 但我是bash脚本的新手,所以我不知道如何做到这一点。

#!/bin/bash
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

#### Configuration ####
DATE=$(date "+%d-%m-%y_%H-%M")
GLACIER_CONFIG=/usr/local/src/backup/mt-aws-glacier/glacier.cfg
ROOT=/home/backup/kev-test
VAULT=testboltonvault1
JOURNAL=/home/glacier_journal-test1.log
log_file="/var/log/glacier_test1_$DATE.log"
#######################

case $1 in

sync)
        /usr/local/src/backup/mt-aws-glacier/mtglacier sync --config     $GLACIER_CONFIG --dir $ROOT --vault $VAULT --journal $JOURNAL --concurrency 3 >>$log_file 2>&1

;;

check)
        /usr/local/src/backup/mt-aws-glacier/mtglacier check-local-hash --config=$GLACIER_CONFIG  --dir $ROOT --vault=$VAULT --journal $JOURNAL     >>$log_file 2>&1
;;

retrieve)
# warning, make sure DIR is correct, avoid disaster!
        rm -rf $ROOT/*
        /usr/local/src/backup/mt-aws-glacier/mtglacier check-local-hash --    config=$GLACIER_CONFIG --dir $ROOT --vault=$VAULT --journal=$JOURNAL >>$log_file     2>&1
        /usr/local/src/backup/mt-aws-glacier/mtglacier restore -    config=$GLACIER_CONFIG --dir $ROOT --vault=$VAULT -journal=$JOURNAL --max-    number-of-files=10 >>$log_file 2>&1
;;

purge)
# warning, make sure DIR is correct, avoid disaster!
        /usr/local/src/backup/mt-aws-glacier/mtglacier purge-vault -    config=$GLACIER_CONFIG  --dir $ROOT --vault=$VAULT --journal=$JOURNAL     >>$log_file 2>&1
;;

restore)
        /usr/local/src/backup/mt-aws-glacier/mtglacier restore-completed -    config=$GLACIER_CONFIG --dir $ROOT --vault=$VAULT --journal=$JOURNAL >>$log_file     2>&1
;;

esac

你可以这样做:

for FILENAME in /usr/local/src/glacier/*
do
    source $FILENAME
    <your existing code>
done;

source语句将包含配置文件,并且每次迭代都会覆盖变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM