我正在开发一个shell脚本来将a.txt scp到不同的服务器(box1和box2),并且脚本在boxmain server中运行。以下是要求,
注意:box1,box2,boxmain是服务器
我尝试了下面的内容,能够完成前2个任务,但仍然排在第3位。请建议如何实现第三点。提前谢谢。
db2 -tvf query.sql #creates a.txt
scp a.txt user@box1:/root/a.txt
now=$(date +"%m/%d/%Y")
cp a.txt a_$now.txt
我的操作系统版本为AIX test 1 6
答案 0 :(得分:0)
您的问题定义存在轻微问题:在源文件名中使用'/'将使其不仅仅被解释为文件名,还包含包含目录的路径,因为'/'是目录分隔符。使用now=$(date +"%m-%d-%Y")
代替now=$(date +"%m/%d/%Y")
可能是个好主意。
但要回答你的实际问题,我认为归结为:如何在AIX上从昨天输出日期(1)?
答案来自The UNIX and Linux Forums:只需设置描述您的时区的环境变量,其中包含+24,并且您将从date
的输出中获得昨天的日期。
例如:
user @ foo~] #date Mon Nov 4 09:40:34 EET 2013 user @ foor~]#TZ = EST + 24 date 太阳11月3日07:40:36 2013年
将此问题应用于您的问题,只需在运行now=$(date +"%m/%d/%Y")
即为TZ设置适当的值即可。使用now=$(TZ=ZONE+24 date +"%m-%d-%Y")
(注意路径分隔符上的更正并将ZONE替换为您自己的时区)。