LINUX.ORG.RU

Удаление файлов на Google Drive

 ,


0

1

Есть безразмерный ГД, синхронизировать его с компом не хочу.
Задача стоит удалять файлы старше 24 часов.
Посмотрел консольный gdrive. Он может вывести список файлов вот в таком виде, а удалять по ID (первая колонка).

16:23:36 athost /mnt/media/Downloads $ gdrive list --no-header --max 0
1fKE7YF4vLYu9TxjTvUY-5uNaAhTt65Fy   1400081420.zip                             bin   5.1 MB     2019-07-02 16:08:55
1GZJIb7vUaBDHK_BU_Jfxr4KDMXOYfMWS   TB3-710L_S000035_170327_ROW.7z             bin   845.4 MB   2019-07-02 15:14:06
1um7yIxSUyL3_6RKIKFuMGIuSMwOsFmBq   Android16_dmitriygorpenyuk.rar             bin   58.7 MB    2019-07-02 15:09:13
1JemmcIbX4esD0UVr7TY0gE87TZDxPyOi   v815_no_root_no_cache.zip                  bin   495.6 MB   2019-07-02 14:55:34
19ZX_PM8sXcgfw6gnyqSqgmKQ79JRQ36N   Descendant-TwoDotTw...sot-20190402.1.zip   bin   750.6 MB   2019-07-02 14:18:00
1vgkT185vXtjQ5Ziu5lALgXuDbux8bGMD   SDCARD.zip                                 bin   920.6 MB   2019-07-02 11:44:26
1RZw8PysxXjTTjHAuuIDkWG7DQD8sUZQa   aml_upgrade_package.img                    bin   1.5 GB     2019-07-02 11:35:34
1WXntmhZvcOayhXIBHuu8wo0WgyVtT1-b   syberia_lavender-v2...-0924-OFFICIAL.zip   bin   790.3 MB   2019-07-02 00:36:27
1CKKJQrpoKa4dlCMKThMOh3AVTCs0WW-h   6666.qcow2                                 bin   1.1 GB     2019-07-02 00:32:22
1s3PmzYnHgxQoJHc8Yk0FPh7rsDCO_BsP   ROADRASHJB.7z                              bin   179.1 MB   2019-07-01 22:51:13
1dqtH1oNsA7h7gZZ4sxYRP4lGJHngG2si   A305FDDU2ASE5_A305FOLM2ASE5_MM1.zip        bin   3.5 GB     2019-07-01 20:45:27
1D61VH6qysItdEgpZpEfZmzLFayL2WCVC   MiUI_MI8_9.6.27_9_MS.zip                   bin   1.8 GB     2019-07-01 20:04:03
1QoDDv7yO3RStjuPTLq1M9DcPdbd9NakG   Y336.rar                                   bin   14.1 MB    2019-07-01 19:57:51
1WqBfra2SMtez8MMD1fZGJ57b5cmqtp1X   Win10_1903_V1_Russian_x64.iso              bin   4.6 GB     2019-07-01 19:39:57
15YWAedZfEw7SfMe5XrsnuJSJgl4MnGSA   Azedeem Heroes of P...8_apkpure.com.xapk   bin   209.3 MB   2019-07-01 18:25:57
1AyqvwTbbK2ml0J57qEMhVg0_Gl5Olf_u   helium_images_7.4.1..._cn_40d67f71f6.tar   bin   2.2 GB     2019-07-01 17:40:41
1A6Bh95bYyc-m5TE5GBHcBZvV6K3dd0Ry   EMUI-3.1+camera+autofocus+bootlogo.zip     bin   549.6 MB   2019-07-01 15:49:52

Как отделить файлы старше 24 часов и сформировать список их ID для удаления?

★★★★★
Ответ на: комментарий от bvn13

Ну поскольку для меня 2 и 3 не подъемно, то наверное awk.
Только вот я и не могу сообразить, как отфильтровать по дате/времени.

athost ★★★★★
() автор топика
cat data.txt  | while read id otherstring ; 
do
    filedate=$(echo "$otherstring" | rev | awk '{print $2 }' | rev ) ;
    filetime=$(echo "$otherstring" | rev | awk '{print $1 }' | rev ) ;
    yesterdaytimestamp=$(date +%s --date="1 day ago");  ## можно вынести до цикла и вызвать 1 раз.
    filetimestamp=$(date +%s --date="$filedate $filetime" ); 
    if [[ $yesterdaytimestamp -gt $filetimestamp  ]] 
    then 
        echo "удалить файл $id" 
    fi 
done
bl ★★★
()
Последнее исправление: bl (всего исправлений: 1)
Ответ на: комментарий от bl

Спасибо, только не работает. Предлагает все файлы из data.txt удалить)
Но мысль более ли менее понятна, буду пробовать разобраться.

athost ★★★★★
() автор топика
Последнее исправление: athost (всего исправлений: 1)
Ответ на: комментарий от athost
CUR=$(date +%s)
VAR=( $(cat input | rev | awk '{ print $1 " " $2 }' | rev) )
IDX=( $(cat input | awk '{ print $1 }') )
for (( count=0; count<${#IDX[*]}; count+=1 )); do
    T=$(date +%s --date="${VAR[$count*2]} ${VAR[$count*2+1]}")
    DIF=$(($CUR-$T))
    #echo "${VAR[$count]} ${VAR[$count+1]} CUR=$CUR T=$T DIF=$DIF"
    if (($DIF > 86400)); then
	echo ${IDX[$count]}
    fi
done



В файле input результат выхлопа gdrive list --no-header --max 0

imul ★★★★★
()
Последнее исправление: imul (всего исправлений: 1)
Ответ на: комментарий от athost

Ну поскольку для меня perl и python не подъемно, то наверное awk.

athost ★★★★★
★★★★★

Надо еще реже сюда заходить

anonymous
()
Ответ на: комментарий от bl

Зачем так страдать? Можно страдать иначе :)

rain@walkbook:/tmp$ gawk '{gsub(/\-|:/, " ", $6); gsub(/\-|:/, " ", $7); if (systime()-mktime($6" "$7)>86400) print $1}' testtest123 
15YWAedZfEw7SfMe5XrsnuJSJgl4MnGSA
1AyqvwTbbK2ml0J57qEMhVg0_Gl5Olf_u
1A6Bh95bYyc-m5TE5GBHcBZvV6K3dd0Ry

YAR ★★★★★
()
Последнее исправление: YAR (всего исправлений: 2)
Ответ на: комментарий от imul

Супер! Этот вариант на пробелы в имени не ругается.

athost ★★★★★
() автор топика
Ответ на: комментарий от YAR

Нда, с пробелами надо что-то делать... Ок, пусть так:

rain@walkbook:/tmp$ gawk '{date=$(NF-1)" "$NF; gsub(/\-|:/, " ", date); if (systime()-mktime(date)>86400) print $1}' testtest123 
1AyqvwTbbK2ml0J57qEMhVg0_Gl5Olf_u
1A6Bh95bYyc-m5TE5GBHcBZvV6K3dd0Ry

YAR ★★★★★
()
Ответ на: комментарий от YAR

Чума! Это тоже работает.
Спасибо)

athost ★★★★★
() автор топика

Всем большое спасибо. Вопрос решен.

athost ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.