Сравните даты файла

Иногда, когда я загружаюсь, моя система входит в чрезвычайный режим.

Я затем использую Clonezilla для восстановления изображения.

Обычно изображение является более старым, чем текущая дата.

Это - часть резервного сценария, который работает как программа запуска.

cd /home/andy/bin/
zip -u -q Ubuntu_Scripts.zip *.sh *.rb *.c *.py *.txt
cp -u Ubuntu_Scripts.zip /media/andy/MAXTOR_SDB1/Ubuntu_Mate_18.04/
cp -u Ubuntu_Scripts.zip /media/andy/MAXTOR_SDB5/Emergency_Backup/

Это затем перезаписывает мой zip-файл с тем, который является на самом деле более старым.

Я думал, что, если я мог бы сравнить даты файла перед операцией zip, я мог бы предотвратить перезапись.

Я попробовал это.

file1time=`stat -c %Y /home/andy/bin/Ubuntu_Scripts.zip`

file2time=`stat -c %Y /media/andy/MAXTOR_SDB1/Ubuntu_Mate_18.04/Ubuntu_Scripts.zip`

if [ "$file1time" -ot "$file2time" ]
then
 echo "File is older. "
fi     
1
задан 9 August 2018 в 16:04

2 ответа

Использовать rsync вместо cp и можно использовать --update флаг, который только обновит, когда Вы скопируете более новый файл.

cd /home/andy/bin/
zip -u -q Ubuntu_Scripts.zip *.sh *.rb *.c *.py *.txt
rsync -av --update Ubuntu_Scripts.zip /media/andy/MAXTOR_SDB1/Ubuntu_Mate_18.04/
rsync -av --update Ubuntu_Scripts.zip /media/andy/MAXTOR_SDB5/Emergency_Backup/
3
ответ дан 3 December 2019 в 06:37

Ваше использование кода -ot где это должно использовать -lt. Посмотрите пример ниже.

#!/bin/bash

file1time=`stat -c %Y /home/niclas/dbat/INSTALL.txt`

file2time=`stat -c %Y /home/niclas/dbat/README.txt`

if [ "$file1time" -lt "$file2time" ]
then
    echo "INSTALL.txt is older."
else
    echo "README.txt is older."
fi   
2
ответ дан 3 December 2019 в 06:37

Другие вопросы по тегам:

Похожие вопросы: