2017-05-28 6 views
2

"SSH Server"アプリケーションを使用してAndroid携帯を設定していて、scpを使用して特定のディレクトリに最新のファイルをダウンロードするスクリプトを作成します。スクリプトはLinuxラップトップから実行されますscp/secureリモートのAndroidデバイス/ SSHサーバーから最新のファイルをコピーする

問題はアンドロイドに "head"や "tail"のようなコマンドが含まれていないことです。最新のファイルを選択する方法がわかりません。

#!/bin/bash 
[email protected]:storage/sdcard0/DCIM/Camera 
scp -P 60839 -oHostKeyAlgorithms=+ssh-dss $dst/* /home/username/projects/3patetas 
done 0 

は誰でも助けることができます:

私ができる最善のは、これで、ディレクトリからすべてのファイルをコピーするのですか?

------- EDIT -------------

私は次のことがうまくいくかもしれないと思ったが、それは停止するには、Android上でSSHサーバーが発生します。

#!/bin/bash 
remote_dir=/storage/sdcard0/DCIM/Camera 
[email protected] 
scp -P 60839 -oHostKeyAlgorithms=+ssh-dss $dst:'ssh $dst cd $remote_dir ; latest="" ; for i in *.jpg ; do latest=$i ; done ; echo $latest' /home/username/projects/3patetas 
exit 0 
+0

'LSを-1T | grep -m 1 .'? – Cyrus

+0

ありがとうございます。 "grep -m 1"パーツは動作しますが、 "ls"は "-1t"を認識しません – escuta

+0

"ls -t | grep -m 1"十分でしょうが、lsには-tオプションがありません – escuta

答えて

0

これは役に立ちますか?

#!/bin/bash 
remote_dir=/storage/sdcard0/DCIM/Camera 
[email protected] 
name="$(ssh $dst "cd $remote_dir"' ; latest="" ; for i in *.jpg ; do latest=$i ; done ; echo $latest')" 
scp -P 60839 -oHostKeyAlgorithms=+ssh-dss $dst:$remote_dir/$name /home/username/projects/3patetas 
exit 0 

またはこの:

#!/bin/bash 
remote_dir=/storage/sdcard0/DCIM/Camera 
[email protected] 
name=($(ssh $dst "cd $remote_dir"' ; for i in *.jpg ; do date +%s -r $i ; echo $i ; done')) 
name=$(printf "%s %s\n" ${name[@]} | sort -n | tail -1) 
scp -P 60839 -oHostKeyAlgorithms=+ssh-dss $dst:$remote_dir/${name#* } /home/username/projects/3patetas 
exit 0 
+0

ありがとうございます。それは良いです。私は、ポート番号とホストキータイプを "name"変数に追加する必要がありました。 #!/ binに/ bashの remote_dir = /ストレージ/ sdcard0/DCIM /カメラ [email protected] 名= "$(SSH -p 60839 -oHostKeyAlgorithms = + sshを-DSS $ dstは" CDの$のremote_dir );scp -P 60839 -oHostKeyAlgorithms = + ssh-dss $ dst:$ remote_dir/$ name /には、最新の "ホーム/イアン/プロジェクト/ 3patetas 0 はしかし、それは奇妙なエラーメッセージを表示します 終了: [email protected]ない通常のファイル – escuta

+0

@escutaとところで、私はちょうど掲示verison選択肢をご確認ください。 Androidには 'date'と' echo'があり、残りのコードはローカルで実行されているので、ファイルが最終的に最終日であることが保証されます。 – hidefromkgb

+0

ありがとうございました。第2版を試しました。それでも同じ問題が発生します。エラーメッセージ:[email protected]普通のファイルではありません – escuta

関連する問題