Linux 在unix中将前一天的文件发送到服务器
我正在开发一个shell脚本,将scp a.txt发送到不同的服务器(box1和box2),该脚本正在boxmain服务器中运行。以下是要求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是服务器 我尝试了下面的方法,能够完成前两项任务,但仍停留在第三项。请建议如何实
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上不可用)