termux:最新の音声ファイルのコピー

毎週サーバーに新たな音声ファイル(*.mp3)を作成して保存しているのですが、その中から最新のファイルだけをandroid端末にコピーして出先で聴取するようにしています。

 

#!/bin/bash
remote_host="nnn.mmm.xxx.yyy"
remote_dir="/home/user/work/MyMusic"
local_dir="/data/data/com.termux/files/home/storage/shared/Music/"

file=\
`ssh ${remote_host} -l user -i ~/.ssh/id_rsa.server \
 "ls -t ${remote_dir} | head -1" `

rm ${local_dir}/*.mp3
scp -i ~/.ssh/id_rsa.server \
user@${remote_host}:${remote_dir}/${file} ${local_dir}

上記のシェルスクリプトの remote とはサーバーのこと、local とは モバイル端末のことを指します。適当なホストIPアドレスと、ディレクトリを指定しておきます。 モバイル端末のホームの下の .shortcuts に上記スクリプトを保存しておけば、 termux:widget のアイコンをタップするだけで、最新ファイルがモバイル端末の Music フォルダにコピーされるようになります。

シェル変数 ${file} は最新音声のファイル名を取得しているのですが、 ls コマンドの -t オプションは作成時刻順にソートすることを意味します。なので head -1 で1行目だけを抜き出せば最新ファイルとなっています。

その下の rm コマンドはモバイル端末のMusicフォルダを常に最新のファイル一つに保っておきたいために使用しています。なので、他にも必要なmp3ファイルが存在する場合は工夫が必要です(全部消去してしまいます)。

termux の ssh (およびscp)コマンドを活用した内容となっています。