Не уверенный в dhcp обнаруживают, но можно установить время владения на клиенте DHCP:
router(config-if)#ip dhcp client lease <days> [hours] [minutes]
Это должно в арендном договоре отправлять, dhcp возобновляют, когда арендный договор истекает.
Вызвать возобновление:
router#renew dhcp <interface>
Я также предлагаю вам использовать rsync
вместо mv
, но добавив к ответу @ Hartmut :
rsync -abmv --remove-source-files /media/localbackup /media/remotebackup/
find /media/localbackup -depth -type d -empty -delete
И 2 дополнения здесь:
-m
( - prune-empty-dirs
) для rsync
, который в моей версии 3.0.7 протокол версии 30 говорит: удалить пустые цепочки каталогов из списка файлов, но по какой-то причине этого не делает. Также нет ошибок ( не единственный, кто это заметил ). find
, которая удаляет пустые каталоги. теперь, причина против cp
&& rm
заключается в том, что cp
может выйти из строя на полпути. В следующий раз, когда вы захотите сделать резервную копию, вы попадете в странную ситуацию (частично скопированные файлы, чтобы назвать худший случай). Также,
С другой стороны, rsync
прекрасно покрывает эти аспекты.
Кроме того, использование сценария (как следует из первого ответа) для выполнения того, что уже делает rsync, но, что еще хуже, не подходит (извините, Hauke Laging :-)). Здесь не нужно изобретать велосипед.
Ваша команда пытается создать уже существующий каталог. Вам следует сделать этот код оболочки более надежным:
tmpdirname=tmpdir
test -d "/media/remotebackup/${tmpdirname}" &&
rm -rf "/media/remotebackup/${tmpdirname}"
pushd /media/localbackup/
test -d "$tmpdirname" && { echo Abbruch; exit 1; }
for dir in *; do
test -d "/media/remotebackup/${dir}" && continue
mv "$dir" "/media/remotebackup/${tmpdirname}" &&
mv "/media/remotebackup/${tmpdirname}" "/media/remotebackup/${dir}"
done
popd
Это позволит пропустить каталоги, которые уже были успешно перемещены.
Я бы использовал команду rsync с параметром --remove-source-files.
Что-то вроде rsync -abv --remove-source-files / media / localbackup / * / media / remotebackup /
Пожалуйста, проверьте перед применением в своей среде.
Я нахожу, что мне часто хочется выполнять какие-то операции с файлами, сохраняя при этом их структуру каталогов. Поэтому я определил функцию bash filtercmd
. Она берет список файлов для работы в качестве stdin, а в качестве параметров берет операцию (например, mv
) и директорию назначения. После этого я могу делать такие вещи в виде простого одного liner
filtercmd () {
if [ ! -d "$2" ]; then echo "$2" does not appear to be a directory; return 1; fi
while read f; do
dir="${f%/*}"
if [ ! "$dir" = "$lastdir" ]
then mkdir -p "$2/$dir"; echo "$dir"; lastdir="$dir"; fi
[ -e "$2/$f" ] || $1 "$f" "$2/$f"; done
}
(cd /media/localbackup && find . | filtercmd "mv -vfb" /media/remotebackup)
Это также можно сделать с помощью rsync
. Использование удаленного протокола rsync
может сэкономить большую пропускную способность, так как протокол должен посылать только измененные куски. Однако, два преимущества filtercmd
по сравнению с rsync
заключаются в том, что (1) вы можете использовать существующие mv-флаги без изучения rsync-эквивалентов и (2), и мы также можем использовать filtercmd
для более мощных вещей, таких как:
(z(){ grep . <$1|gzip >$2.gz;};find . -name '*.txt' | filtercmd z ../gz })
, которая выборочно берет txt-файлы, удаляет пустые строки и gzips их в целевой каталог.
.