В чем разница между / sys / block / sda1 / stat и / sys / block / xvda1 / stat?

Исходя из предположения (на основе тега [linux]) что у вас есть bash , а также команды stat и sort ; в дальнейшем предположении, что вы хотите сначала синхронизировать самые последние измененные файлы (см. man stat для других параметров отметки времени), то вот сценарий bash, который будет циклически перебирать все файлы в текущем каталоге. ( для f в * является ключевой строкой для этого), собирая их последние измененные временные метки в массив, затем он перебирает отсортированные временные метки и печатает - образец! - команда rsync для каждого файла (в настоящее время в качестве доказательства прилагается отладочная информация с отметкой времени).

Конечно, вам придется настроить команду rsync для вашей конкретной ситуации. Этот сценарий будет выводить команды rsync для каждого файла в текущем каталоге; Я предлагаю либо выполнить эти rsync «вслепую», допуская сбой тех, что в конце, либо поместить их в скрипт для отдельного выполнения.

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

#!/usr/bin/env bash
declare -A times

# gather the files and their last-modified timestamp into an associative array,
# indexed by filename (unique)
for f in *
do
  [ -f "$f" ] && times[$f]=$(stat -c %Y "$f")
done

# get the times in (unique) sorted order
for times in ${times[@]}
do
  echo $times
done | sort -run | while read t
do
  # then loop through the array looking for files with that modification time
  for f in "${!times[@]}"
  do
    if [[ ${times[$f]} = $t ]]
    then
      echo rsync "$f" -- timestamp ${times[$f]}
    fi
  done
done

4
26.08.2015, 16:05
0 ответов

Теги

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