rsync снова работает через cron

Сочетайте хитрые решения со специфическими awkфункциями.

Первый вариант

Если шаблон "TOCHANGE"встречается только один раз в каждой строке. Обычного awkбудет достаточно.

awk '{
    if(NF == 2) {
        getline OFS < "file_2"
        $1 = $1
    }    
    print
}' FS='TOCHANGE' input.txt

Второй вариант

Если шаблон "TOCHANGE"может встречаться много раз в каждой строке. Требуется gawk.

gawk '{
    RS="\n"
    if(RT)
        getline ORS < "file_2"
    else
        ORS=""

    print

    RS="TOCHANGE"
}' RS='TOCHANGE' input.txt

Тестирование

input.txt

a
b TOCHANGE
c
d 
e TOCHANGE
f
g TOCHANGE

файл _2

line1
line2
line3
line4

Выход

a
b line1
c
d 
e line2
f
g line3
0
29.04.2020, 08:56
1 ответ

Поскольку вы не можете дать sudoпароль при использовании его из собственного crontab, и поскольку цель использования sudoв первую очередь состоит в том, чтобы получить привилегии суперпользователя, запустите вашу команду rsyncиз root crontab, а не ваш собственный, кажется лучшим вариантом.

Вы можете редактировать crontab пользователя root, используя

sudo crontab -e

В нем вы можете добавить то же расписание, которое вы указали в своем вопросе, но без команды sudo.

0
19.03.2021, 02:21

Теги

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