BitTorrentSyncでスマートフォンからサーバにコピーしたファイルをローカルPCにコピーするスクリプトを15分に1回cronで回している。
ローカルでは、「20160530TOJ京都」などのディレクトリ名でデジタルカメラで撮影した写真を保存にしてるので、同様にディレクトリの頭に8桁の年月日をつけ、最後に機種名をつけている。
$remote_dirの/home/kazz/btsyncはサーバのディレクトリをマウントしたもの。
#!/usr/bin/php <?php $local_dir = "/home/kazz/btsync_monthly"; $remote_dir = "/home/kazz/btsync/"; $phone = "z3c"; $newest_file_date =rtrim(`find $local_dir -type f -printf "%TY/%Tm/%Td %Tk:%TM:%TS\n"|sort|tail -1`); echo "$newest_file_date\n"; exec("find $remote_dir -type f -newerct \"$newest_file_date\"",$files); #ctime btsyncでサーバにコピーされた時刻 重複発生 #mtime ファイルスタンプ syncが失敗していたら抜けることも foreach($files as $file){ $time = filemtime("$file"); $last_day_of_month = date("Ymt",$time); if(file_exists("$local_dir/$last_day_of_month$phone")===false){ mkdir("$local_dir/$last_day_of_month$phone"); } exec("cp $file $local_dir/$last_day_of_month$phone/ -p -u"); } ?>
参考にしたサイト。
koyhogetech.hatenablog.com