awkрешение:
awk 'NR==FNR{ a[$1]=$2; next };{ len=split($4,b,","); s=0;
for(i=1;i<=len;i++) s+=a[b[i]]; $6=s/$5 }1' file2 OFS='\t' file1 | column -tx
Выход:
1 100 371 R1,R2,R4 12 0.0416667
5 167 16 R2,R5 5 0.066
8 242 490 R1,R3,R4 11 0.0440909
a[$1]=$2
-захват ключей/значений из 2-го файла
split($4,b,",")
-разбиение 4-го поля 1-го файла на массив "ключей"
len
-количество чанков
s+=a[b[i]]
-накопление значений для совпавших "ключей"
Запускайте сторону чтения rsync как выделенный не -пользователь root, но с возможностью CAP_DAC_READ_SEARCH
. Пользователь должен иметь полное представление о файловой системе (конечно )и доступ к копии /usr/bin/rsync
, которая имеет эту возможность. Я не очень хорошо разбираюсь в возможностях Linux, но думаю, как это настроить:
cp /usr/bin/rsync /usr/local/sbin/rsync-for-backup
chown root.root /usr/local/sbin/rsync-for-backup
chmod 700 /usr/local/sbin/rsync-for-backup
setfacl -m user:backupuser:rx /usr/local/sbin/rsync-for-backup
setcap cap_dac_read_search+ep /usr/local/sbin/rsync-for-backup
Не забывайте обновлять копию при каждом обновлении rsync. Пройдите --rsync-path=/usr/local/sbin/rsync-for-backup
на другую сторону.
(Я предполагаю Linux. Для других вариантов Unix потребуются другие решения.)
Некоторые другие потенциальные подходы:
Я столкнулся с точно такой же проблемой. Основная причина заключалась в том, что сервер kerberos поддерживал только тип шифрования rc4 -hmac.
решение:в использовании ktutil
ktutil: addent -password -p foo@bar -k 0 -e rc4-hmac
Password for foo@bar:
ktutil: wkt foo.keytab
ktutil: quit
ktinit -kt foo.keytab foo
Мне это помогло. Если это не сработает, попробуйте все разные типы шифрования по одному.
-121 ---285528 -Вам потребуется запустить rsync
от имени пользователя удаленной системы с правами -только на чтение. Например.rsync -a read_only_user@target_machine:/path/to/files /backup/location
Стоит отметить, что rsync
будет удалять файлы только при использовании с флагом --delete
.
Вы можете взглянуть на оболочку rsync rrsync
, где вы можете указать флаг -ro
.
Для вашего варианта использования я бы также рекомендовал взглянуть на rsnapshot
, так как это довольно удобно для централизованного резервного копирования при сохранении дискового пространства за счет использования жестких ссылок(https://rsnapshot.org).