как найти файлы с текущей датой на удаленном сервере и скопировать их на локальный сервер с помощью rcp, используя сценарий оболочки (ksh)?

Подход, который я бы использовал, состоит в том, чтобы взять выходные данные ls, настроить массив, отображающий преобразованное имя обратно в исходное имя, а затем обработать каждую строку входного файла. Если входные данные находятся в массиве, выведите значение массива, в противном случае добавьте строку ввода в отсутствующий файл . Например, поместите это в файл, перейдите в каталог и запустите его с входным файлом в качестве параметра

#!/usr/bin/awk
# set up an array t of translations
BEGIN {
    while (("ls" | getline )>0) {
        k=$0
        gsub(/ /,"_")
        if ($0 in t) {
            print "$0 matches more than one file" > /dev/stderr
            exit(2)
        }
        t[$0]=k
    }
    close("ls")
}
    { if ($0 in t) {
            print t[$0]
        } else {
            print $0 > "../missing"
        }
    }
1
18.03.2017, 10:21
1 ответ

в EOS в конце выполнения резервного копирования

find /user/orac/monthly/ -name 'daily_backup_ORAC_*' -mtime -1 -print > /var/tmp/todays_backup.txt

в домене 1 выполните

rcp EOS:/var/tmp/todays_backup.txt /var/tmp
for f in $(< /var/tmp/todays_backup.txt)
do
    rcp -p EOS:$f /database/backup_eos/
done

таким образом, поиск выполняется локально, а домен 2 должен только получить список и получить файл.

если $ (<) не поддерживается, используйте

 while read f
 do
    /var/tmp/todays_backup.txt
 done < /var/tmp/todays_backup.txt
2
27.01.2020, 23:34

Теги

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