Googleドライブアカウントにバックアップデータを送信するための小さなシェルスクリプトを作成しました...うまくいきますが、古いファイルを削除する必要がありますグーグルドライブ。私は、シェルスクリプトとの良好ではないと私は以下のコードを終了する方法がわからない:私は削除する必要がシェルスクリプトforeachロジック... gdriveでGoogleドライブにデータを送信
#!/bin/sh
# Backing up to local folder
sudo gitlab-rake gitlab:backup:create
# Sending files to google drive https://github.com/prasmussen/gdrive
gdrive sync upload /path/to/backups folderID
# Delete 5 days older backups from local folder
find /path/to/backups/* -mtime +5 -exec rm {} \;
# Get date fom 5 days ago
DATA=`date +%Y-%m-%dT%H:%M:00 -d "5 days ago"`
リストの下の行のすべてのファイルIDが:
# List files to delete
gdrive list -q "'folderID' in parents and modifiedTime <= '$DATA-03:00'" --no-header | awk '{print $1;}'
今をIただ実行する必要がある
gdrive delete <fileID>
私が前にリストした各IDについて。
誰かがこのforeachシェルスクリプトの事で私を助けることができますか?
誰かが私を助けようとしたが、それは動作しませんでした...次の方法を試みた: gdriveを親とmodifiedTime <= '$ DATA-03:00'のリスト-q "'folderID'" --no-header | awk {'print $ 1'} | xargs gdrive delete と gdrive list -q "親のfolderIDとmodifiedTime <= '$ DATA-03:00" " - no-header | xargs gdrive delete –
'xargs gdrive delete'を' xargs echo'に置き換えるとどうなりますか? – mrmcgreg
と 'echo'を使用すると、削除する必要があるファイルIDがリストされます... –