0

a.txt を異なるサーバー (box1 と box2) に scp するためのシェル スクリプトを作成しており、スクリプトは boxmain サーバーで実行されています。以下、要項、

  1. 私のスクリプトはdb2データベースに接続し、boxmainに.txtファイルを生成します
  2. a.txt は、ファイルが生成されると box1 に scp されます
  3. boxmain(a.txt) で生成されたファイルは、次の日に box2 に scp されます。つまり、前日の boxmain ファイルの SCP になります。

注:box1、box2、boxmainはサーバーです

私は以下を試しましたが、最初の2つのタスクを完了することができましたが、3番目で立ち往生しました。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

私のOSのバージョンは AIX test 1 6

4

1 に答える 1

0

質問の定義には少し問題があります。ソースファイル名に「/」を使用すると、ファイル名だけでなく、ディレクトリを含むパスとしても解釈されます。これは、「/」がディレクトリセパレータであるためです。now=$(date +"%m-%d-%Y")の代わりに使うのもいいかもしれませんnow=$(date +"%m/%d/%Y")

しかし、私が考える実際の問題に答えるには、AIXで昨日から日付を出力するためにdate(1)を取得する方法は?

答えは、UNIX および Linux フォーラムから見つかりました。タイムゾーンを記述する環境変数を +24 に設定するだけで、 の出力から昨日の日付を取得できますdate

例えば:

user@foo ~]# date Mon Nov 4 09:40:34 EET 2013 user@foor ~]# TZ=EST+24 date Sun Nov 3 07:40:36 EST 2013

now=$(date +"%m/%d/%Y")これを問題に適用すると、 ieを実行するときに TZ に適切な値を設定するだけです。を使用しますnow=$(TZ=ZONE+24 date +"%m-%d-%Y")(パス区切り記号の修正に注意し、ZONE を独自のタイムゾーンに置き換えます)。

于 2013-11-04T07:46:17.950 に答える