2

Я пытаюсь получить скрипт, который будет переименовывать и перемещать видео. Вот что у меня есть:

#!/bin/bash

src="/mnt/Files_Apps/temp/"
dest="/mnt/Files_Apps/TFTP root/"

for file in "$src"*.*; do
    newfile="${dest}$(date -r "$file" +"%Y-%m-%d %H %M %S").MOV"
    mv "$file" "$newfile"
done

Я менял содержимое исходного каталога несколько раз. Одни файлы давятся, другие работают нормально. Я не могу понять, почему он видит определенные файлы (все в.Формат MOV, импортированный из моего iPhone) в виде дубликатов.

Выход mount

//GRAMNAS/Files_Apps on /mnt/Files_Apps type cifs     (rw,relatime,vers=1.0,sec=ntlm,cache=strict,username=xxxxx,uid=1208001104,forceuid,gid=1208001114,forcegid,addr=x.x.x.x,unix,posixpaths,serverino,mapposix,acl,rsize=1048576,wsize=1048576,actimeo=1)

ls -li на src перед запуском скрипта:

~/.scripts$ ls -li /mnt/Files_Apps/temp/
total 697384
13238340 -rwxrwxrwx 1 chris linuxadmin   8844047 Jul 19 21:39 IMG_5624.MOV
13238349 -rwxrwxrwx 1 chris linuxadmin  96701684 Apr 14 11:58 IMG_7355.MOV
13238366 -rwxrwxrwx 1 chris linuxadmin  98690685 Apr 17 15:06 IMG_7426.MOV
13238384 -rwxrwxrwx 1 chris linuxadmin 100289499 May  5 14:32 IMG_7568.MOV
13238579 -rwxrwxrwx 1 chris linuxadmin  75031725 May  8 11:57 IMG_7662.MOV
13239032 -rwxrwxrwx 1 chris linuxadmin  86233885 May  9 10:13 IMG_7672.MOV
13239098 -rwxrwxrwx 1 chris linuxadmin  76930641 May  9 16:03 IMG_7687.MOV
13239466 -rwxrwxrwx 1 chris linuxadmin  78796811 May 13 13:22 IMG_7806.MOV
13240809 -rwxrwxrwx 1 chris linuxadmin  92599209 May 14 12:39 IMG_7951.MOV

ls -li на dest перед запуском скрипта:

~/.scripts$ ls -li /mnt/Files_Apps/TFTP\ root/
total 0

Вывод скрипта:

~/.scripts$ bash -v videorename.sh
date -r "$file" +"%Y-%m-%d %H %M %S"
mv: '/mnt/Files_Apps/temp/IMG_5624.MOV' and '/mnt/Files_Apps/TFTP root/2016-07-19 21 39 21.MOV' are the same file
date -r "$file" +"%Y-%m-%d %H %M %S"
mv: '/mnt/Files_Apps/temp/IMG_7355.MOV' and '/mnt/Files_Apps/TFTP root/2016-04-14 11 58 26.MOV' are the same file
date -r "$file" +"%Y-%m-%d %H %M %S"
mv: '/mnt/Files_Apps/temp/IMG_7426.MOV' and '/mnt/Files_Apps/TFTP root/2016-04-17 15 06 35.MOV' are the same file
date -r "$file" +"%Y-%m-%d %H %M %S"
.
.
.

ls -li на src после запуска скрипта:

~/.scripts$ ls -li /mnt/Files_Apps/temp/
total 697384
13238340 -rwxrwxrwx 1 chris linuxadmin   8844047 Jul 19 21:39 IMG_5624.MOV
13238349 -rwxrwxrwx 1 chris linuxadmin  96701684 Apr 14 11:58 IMG_7355.MOV
13238366 -rwxrwxrwx 1 chris linuxadmin  98690685 Apr 17 15:06 IMG_7426.MOV
13238384 -rwxrwxrwx 1 chris linuxadmin 100289499 May  5 14:32 IMG_7568.MOV
13238579 -rwxrwxrwx 1 chris linuxadmin  75031725 May  8 11:57 IMG_7662.MOV
13239032 -rwxrwxrwx 1 chris linuxadmin  86233885 May  9 10:13 IMG_7672.MOV
13239098 -rwxrwxrwx 1 chris linuxadmin  76930641 May  9 16:03 IMG_7687.MOV
13239466 -rwxrwxrwx 1 chris linuxadmin  78796811 May 13 13:22 IMG_7806.MOV
13240809 -rwxrwxrwx 1 chris linuxadmin  92599209 May 14 12:39 IMG_7951.MOV

ls -li на dest после запуска скрипта:

~/.scripts$ ls -li /mnt/Files_Apps/TFTP\ root/
total 0

2 ответа2

2

Оказывается, проблема заключалась в том, как был смонтирован общий ресурс CIFS. Похоже, что inode, возможно, кэшировался, таким образом рендеринг большинства файлов дублировался, когда скрипт пытался записать новое имя файла. Чтобы решить эту проблему, я добавил «cache = none» в fstab и перемонтировал общий ресурс. С тех пор я пробежался по сценарию несколько раз без проблем.

Хотя я знаю, ЧТО это была за проблема, я все еще не совсем уверен, ПОЧЕМУ она была в проблеме. Если у кого-то есть понимание того, как это влияет на монтировку CIFS, я весь в ушах.

0

Пространства не так утомительны:

#!/bin/bash

src="/mnt/Files_Apps/temp/"
dest="/mnt/Files_Apps/TFTP root/"

for file in "$src"*.*; do
    newfile="${dest}$(date -r "$file" +"%Y-%m-%d %H %M %S").MOV"
    mv "$file" "$newfile"
done

Скажи мне, если это решит твою проблему. По крайней мере, это проще.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .