我需要一个接一个地顺序运行几个复制命令,但是我可以使用sleep命令来顺序运行该命令。一旦执行了copy命令,该命令将立即将两个条目标记为带有random_id和status为待处理的mysql表,则仅在状态变为成功后才需要运行第二条命令。我该如何简单地在shell脚本中完成
命令
aws s3 cp firstfile1.txt /path
一旦命令被触发,在Mysql中,我们可以看到这样的条目
entry_date , random_id , status,id
2019-03-10 , FIlecopy_190223321,pending , 10
2019-03-10 , FIlecopy_part2_190223321,pending , 10
状态更改为成功后,将自动触发第二个文件副本。
aws s3 cp secondfile.txt /path
Mysql条目
2019-03-10 , secondfilecopy_11111,pending , 11
2019-03-10 , secondfilecopy_part_2_11111,pending , 11
,该列表继续显示1000个文件。我该如何简单地在shell脚本中实现这一目标。
有人可以帮我吗。下面的解决方案不能正确地帮助我,
答案 0 :(得分:0)
我认为,您只是在寻找一种基于db中mysql记录添加条件的方法。
您可以根据数据库中的状态提取记录并添加条件。
这里提供了非常酷的解决方案。
https://unix.stackexchange.com/questions/111545/mysql-query-resultset-in-bash-script
这里是从mysql记录添加条件的示例。
#!/bin/bash
mysql --silent -h server-name -P 3306 -u username-ppassword -D dbname<<<"select URL from Experiment where URL_Exists = 1" > tmp_results
while read URL
do
echo $URL
var=$(curl -s --head $URL | head -n 1 | grep "HTTP/1.[01] [23]..")
echo "$var"
if [ -z "$var" ]
then
echo "Ok we do not have a valid link and the value needs to be updated as -1 here"
else
echo "we will update the value as 1 from here"
fi
done < tmp_results