ローカルサーバ(サーバA)上で実行されるスクリプトを使用して、リモートサーバ(サーバB)から特定の時間範囲内のファイルのグループをコピーしようとしています。 findで-newermtオプションを使用して時間範囲を指定しています。 私は、リモートサーバ(サーバB)へのSSHのであれば、これは動作します:-newermtオプションのsshで検索する変数を渡す
find /appl/backup/monsters/green/y.y.y.y/2016-04-26_08-00-01/jelly/ -newermt "2016-04-26 07:40:00" \! -newermt "2016-04-26 07:50:00"
そして私は指定された時間のためのファイルのリストを取得します。
しかし、私はssh経由でローカルサーバ(サーバA)からこれをinvolkeしようとした場合:
#!/bin/bash
#
CLUSTER="green"
node="x.x.x.x"
STIME="2016-04-26_08-00-01"
#T1=1461678000
#T2=1461678600
T1="2016-04-26 07:40:00"
T2="2016-04-26 07:50:00"
ssh [email protected] find /appl/backup/monsters/${CLUSTER}/${node}/${STIME}/jelly/ -newermt "$T1" \\! -newermt "$T2"
echo $latest_file
echo SCP Completed.
exit
これは私の検索エラーを与える:
検索:07:パス式の前にする必要があります。 40:00
だから、私のように使用しないようにunixtimestampsに変換しようとしたこの方法の発見で、「2016年4月26日午前7時40分00秒」に
をスペースを好きではないように見えますペースが、見つけることがそれらを好きではない:
検索:私は、日付や時刻として `1461678000を解釈する方法を見つけ出すことはできません
私の質問は、私はこのまたは中括弧のためのスペース文字を区切るために持っているです、私はいくつかのことをしようとしているが、まったく不安を抱えている。
ありがとうございます!
ローカルのサーバーではなく*リモート*サーバーに見えるようにする必要があります。 *全体* 'find'コマンドを二重引用符で囲み、二重引用符を使用している場合は一重引用符を使用してください。 –
それは、とてもありがとうございます! –