- Автор темы
- #1
Есть такой код:
То есть смысл в чем. Надо выполнить "всякие команды", если что-то изменилось в файле /var/s1.cfg с момента последнего выполнения данного скрипта.
Для этих целей придумано создавать bak-файл этого /var/s1.cfg и сравнивать на размер.
Это все хорошо, но возможны ситуации, что размер не изменился, но содержимое файла изменилось.
Можно было бы сравнивать даты создания файлов cfg и bak, однако команда cp создает файл с новой датой, а не датой создания файла - оригинала.
Выходов два: 1) сравнивать содержимое файлов, что думаю не очень рационально, размеры файлов могут быть большими (до 400-500 кБт); 2) во втором файле хранить не содержимое первого файла, а дату и время его создания и если оно отличается, то произвести действия и сохранить новое время и дату создания.
Возможно ли такое сделать на shell-скрипте. Помогите, пожалуйста с реализацией данного скрипта.
PHP:
#!/bin/bash
filename=/var/s1.cfg
filename1=/var/s1.bak
filesize=$(stat -c%s "$filename")
filesize1=$(stat -c%s "$filename1")
if [ "$filesize" = "$filesize1" ];
then
exit 0
else
# тут всякие команды
cp /var/s1.cfg /var/s1.bak
fi
То есть смысл в чем. Надо выполнить "всякие команды", если что-то изменилось в файле /var/s1.cfg с момента последнего выполнения данного скрипта.
Для этих целей придумано создавать bak-файл этого /var/s1.cfg и сравнивать на размер.
Это все хорошо, но возможны ситуации, что размер не изменился, но содержимое файла изменилось.
Можно было бы сравнивать даты создания файлов cfg и bak, однако команда cp создает файл с новой датой, а не датой создания файла - оригинала.
Выходов два: 1) сравнивать содержимое файлов, что думаю не очень рационально, размеры файлов могут быть большими (до 400-500 кБт); 2) во втором файле хранить не содержимое первого файла, а дату и время его создания и если оно отличается, то произвести действия и сохранить новое время и дату создания.
Возможно ли такое сделать на shell-скрипте. Помогите, пожалуйста с реализацией данного скрипта.