基于mysql条目的shell脚本中的文件复制

时间:2019-05-11 07:01:55

标签: mysql shell

我需要一个接一个地顺序运行几个复制命令,但是我可以使用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脚本中实现这一目标。

有人可以帮我吗。下面的解决方案不能正确地帮助我,

1 个答案:

答案 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