Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在unix中将前一天的文件发送到服务器_Linux_Shell_Unix - Fatal编程技术网

Linux 在unix中将前一天的文件发送到服务器

Linux 在unix中将前一天的文件发送到服务器,linux,shell,unix,Linux,Shell,Unix,我正在开发一个shell脚本,将scp a.txt发送到不同的服务器(box1和box2),该脚本正在boxmain服务器中运行。以下是要求 我的脚本将连接到db2数据库并在boxmain中生成一个.txt文件 a、 生成文件后,txt将被scp发送到第1框 在boxmain(a.txt)中生成的文件将在第二天被scp发送到box2,即它将是前一天的boxmain文件的scp 注意:box1、box2和boxmain是服务器 我尝试了下面的方法,能够完成前两项任务,但仍停留在第三项。请建议如何实

我正在开发一个shell脚本,将scp a.txt发送到不同的服务器(box1和box2),该脚本正在boxmain服务器中运行。以下是要求

  • 我的脚本将连接到db2数据库并在boxmain中生成一个.txt文件
  • a、 生成文件后,txt将被scp发送到第1框
  • 在boxmain(a.txt)中生成的文件将在第二天被scp发送到box2,即它将是前一天的boxmain文件的scp
  • 注意:box1、box2和boxmain是服务器

    我尝试了下面的方法,能够完成前两项任务,但仍停留在第三项。请建议如何实现第三点。提前谢谢

    db2-tvf query.sql#创建一个.txt

    scp a.txtuser@box1:/root/a.txt

    now=$(日期+%m/%d/%Y”)

    cp a.txt a_$now.txt


    我的操作系统版本是AIX test 1 6

    您的问题定义有一个小问题:在源文件名中使用“/”将使其不仅解释为文件名,而且解释为包含目录的路径,因为“/”是目录分隔符。最好使用
    now=$(日期+%m-%d-%Y)
    而不是
    now=$(日期+%m/%d/%Y)

    但要回答您的实际问题,我认为可以归结为:如何获取date(1)以在AIX上输出昨天的日期

    答案来自:只需将描述时区的环境变量设置为+24,就可以从
    date
    的输出中获得昨天的日期

    例如:

    user@foo~]#日期 2013年11月4日星期一09:40:34 EET user@foor~]#TZ=EST+24日期 美国东部时间2013年11月3日星期日07:40:36


    将此应用到您的问题中,只需在运行
    now=$(日期+%m/%d/%Y)时为TZ设置一个适当的值即可。使用
    now=$(TZ=ZONE+24日期+%m-%d-%Y)
    (注意路径分隔符上的更正,并用您自己的时区替换ZONE)。

    尝试
    date-d'1天前的+%m/%d/%Y
    (可能在AIX上不可用)