Есть два способа достичь этого.
Проверить, не трогали ли файл в течение 2 или 3 минут после его записи. Таким образом, вы можете сказать, что файл полностью записан или нет. Чтобы проверить, был ли файл записан как минимум за 3 минуты до:
find /testfolder/filename.* -type f -mmin +3
Вы можете использовать цикл for, если у вас более одного файла:
for f in $(find /testfolder/filename.* -type f -mmin +3)
do
mv filename.* to destination
cat../Test_Data/local_enc* >../Test_Data/All_Enc_Coords.txt
done
Если у вас есть трейлер в файле, вы можете прочитать запись трейлера, а затем решить, когда каталогизировать файл.
Решение найдено по крайней мере для kerberos и версии 3.1.1
Предположим, моего пользователя зовут «пино». Сначала мы должны создать на сервере AD (Windows, Samba4, другие.. )keytab для поддельного пользователя "cifs1".
ssh samba4.ad.server
samba-tool user delete cifs1
samba-tool user create cifs1 --random-password
samba-tool spn add cifs/yourclient.fqdn cifs1
samba-tool domain exportkeytab cifs1.keytab --principal=cifs/yourclient.fqdn
затем редактируем файл /etc/request.key.conf и добавляем эти две строки
create cifs.spnego * * /usr/sbin/cifs.upcall %k
create dns_resolver * * /usr/sbin/cifs.upcall %k
Затем мы безопасно скопируем keytab с рекламного сервера на наш клиент. и слить с keytab krb5.keytab на клиенте
(echo rkt cifs1.keytab ; echo wkt /etc/krb5.keytab )|ktutil
Пользователь "pino" аутентифицирован, но из соображений безопасности мы повторяем kinit
echo passofpino|kinit
Теперь, наконец, мы можем смонтировать нашу общую папку с версией = 3.1.1, самая важная часть — «cruid», иначе произойдет сбой
sudo mount.cifs -vvv //client.fqdn/Publicshare -o sec=krb5,user=pino,cruid=pino,vers=3.1.1 /mnt
возврат
mount.cifs kernel mount options: ip=192.168.0.2,unc=\\client.fqdn\Publicshare,sec=krb5,vers=3.1.1,cruid=10003,user=pino,pass=********
Если я попробую обычный пароль вместо krb5, вернусь ошибка, но с kerberos более безопасно, так что это не проблема. Если вы хотите написать в общий доступ, строка
sudo mount.cifs -vvv //client.fqdn/Publicshare -o sec=krb5,user=pino,cruid=pino,vers=3.1.1,forceuid,forcegid,uid=$(id -u pino),gid=$(id -g pino) /mnt