LINUX.ORG.RU
ФорумAdmin

безопасно скачать файл

 


0

1

Хочется безопасно скачать файл и положить его куда либо. ( т е так чтобы гарантировано после изменения файла он был целым ). просто wget видимо не пойдет т к может проийти некоторое время пока он скачается. накропал вот такой скрипт:

#!/bin/bash
wget -O - -q -t 1 --timeout=5 "http://test.xml" -O /data/test.tmp
if [ $? -eq 0 ]
then
    mv -f /data/test.tmp /data/test.xml
else
    echo 'Error download file'
fi
Достаточно ли его ? Операция mv как я понимаю атомарная ?

★★☆☆

Последнее исправление: SI (всего исправлений: 1)

Операция mv как я понимаю атомарная ?

Между разными разделами займет время. Качай файл во временный (скрытый) файл в целевой директории, потом переименовывай.

sdio ★★★★★
()

В вашем случае (переименование файла, а не копирование/удаление исходного), достаточно создать временный файл правильно (mktemp):

tmpf="/data/.$$_$(date +%s).XXXXXXX"
mktemp $tmpf
wget -O - -q -t 1 --timeout=5 "http://test.xml" -O $tmpf
В остальном - здесь mv действительно атомарна.

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