Останні статті і огляди
Новини
файлова система дисків для RAID на Synolodgy NAS
-
Jay228
Member
Маю Synolodgy NAS DS233 здвума дисками .
На ньому створюю RAID 1 для бекапів . файлові системи на вибір дає тільки ext4 і Btrfs .
і тут виникає проблема . коли роблю бекап трапляються файли з довгими імінеами і бекап спиняється . їх дуже багато і виловити їх та перейменувати не варіант .
Підкажіть чи є якийсь спосіб змінити файлову систему рейду чи в ext4 і Btrfs обійти це обмеження на кількість символів
На ньому створюю RAID 1 для бекапів . файлові системи на вибір дає тільки ext4 і Btrfs .
і тут виникає проблема . коли роблю бекап трапляються файли з довгими імінеами і бекап спиняється . їх дуже багато і виловити їх та перейменувати не варіант .
Підкажіть чи є якийсь спосіб змінити файлову систему рейду чи в ext4 і Btrfs обійти це обмеження на кількість символів
-
Shpoker
Member
- Звідки: Киев
Нет, там жесткий лимит.Jay228: ↑ 18.12.2024 10:07ext4 і Btrfs обійти це обмеження на кількість символів
Отправлено спустя 2 минуты 1 секунду:
Так скриптом в 5 строк можно всё выловить, делаешь рекурсивный листинг всего и если строка длиннее чем х, то пишешь ее в логJay228: ↑ 18.12.2024 10:07їх дуже багато і виловити їх та перейменувати не варіант .
А что б автоматом переименовать потом - нужно паттерн придумать, может достаточно будет пару уровней папок убрать да и всё.
-
Jay228
Member
Shpoker
так навіть якщо знайти ті файли їх може виявитись тисячі.
а на NTFS превести рейд 1 в сінолоджі не можна ?
так навіть якщо знайти ті файли їх може виявитись тисячі.
а на NTFS превести рейд 1 в сінолоджі не можна ?
-
Shpoker
Member
- Звідки: Киев
Jay228
В нтфсе ТАКОЙ ЖЕ лимит . Про синолоджи ничего не знаю и знать не хочу, но подозреваю что там линукс, для которого нтфс драйвер - боль
Отправлено спустя 3 минуты 8 секунд:
Делай свои бэкапы в /b/... Что добавит в путь всего 2 символа, а не в какой-то /home/user/documents/backups/date/...
Может у тебя лимит длинны пути сработал, а не конкретно имени файла
В нтфсе ТАКОЙ ЖЕ лимит . Про синолоджи ничего не знаю и знать не хочу, но подозреваю что там линукс, для которого нтфс драйвер - боль
Отправлено спустя 3 минуты 8 секунд:
Делай свои бэкапы в /b/... Что добавит в путь всего 2 символа, а не в какой-то /home/user/documents/backups/date/...
Может у тебя лимит длинны пути сработал, а не конкретно имени файла
-
Jay228
Member
Shpoker
бекап зробив локально спочатку на звичайний юсб диск . це щоб по мережі не гнати і не забивати тим самим трафік для працюючих користувачів.
і от локально все переписалось на ntfs диск . хоча там теж наче обмеження по довжині файлу та шляху. як таке може бути не знаю
бекап зробив локально спочатку на звичайний юсб диск . це щоб по мережі не гнати і не забивати тим самим трафік для працюючих користувачів.
і от локально все переписалось на ntfs диск . хоча там теж наче обмеження по довжині файлу та шляху. як таке може бути не знаю
-
Shpoker
Member
- Звідки: Киев
Jay228
Так у тебя стопорится на записи или чтении с диска? И реально понять бы проблема точно в имени файла или в пути. Бо я не понимаю как можно без ошибки создать файл с длинным именем, но отлично знаю как испортить путь к файлу так что б с ним нельзя было работать.
Так у тебя стопорится на записи или чтении с диска? И реально понять бы проблема точно в имени файла или в пути. Бо я не понимаю как можно без ошибки создать файл с длинным именем, но отлично знаю как испортить путь к файлу так что б с ним нельзя было работать.
-
Jay228
Member
Shpoker
теж не зрозуміло як дало створити ці файли взагалі
зараз по пунктам розкладу
1.файловий сервер на віндовс сервер до нього підключаю юсб диск і преписую всі папки - все ок.
2. підєдную цей юсб диск з копією данних по юсб до сінолоджі . і прямо в ньому в веб інтерфейсі копіюю - та вискакує ця помилка довжини
теж не зрозуміло як дало створити ці файли взагалі
зараз по пунктам розкладу
1.файловий сервер на віндовс сервер до нього підключаю юсб диск і преписую всі папки - все ок.
2. підєдную цей юсб диск з копією данних по юсб до сінолоджі . і прямо в ньому в веб інтерфейсі копіюю - та вискакує ця помилка довжини
-
Васильович
Member
Я просто архівував би потрібні файли з сервера прямо на USB диск, а вже архів на NAS скидав.Jay228: ↑ 18.12.2024 11:391.файловий сервер на віндовс сервер до нього підключаю юсб диск і преписую всі папки - все ок.
-
Jay228
Member
Васильович
цей варіант теж розгладаю на самий крайній варіант. тому що до файлів бекапу теж треба буде доступ оперативний. а якщо вони будуть в архіві це не підходить
цей варіант теж розгладаю на самий крайній варіант. тому що до файлів бекапу теж треба буде доступ оперативний. а якщо вони будуть в архіві це не підходить
-
Shpoker
Member
- Звідки: Киев
Так какая ошибка то? Что не может прочитать или не может записать?Jay228: ↑ 18.12.2024 11:39і прямо в ньому в веб інтерфейсі копіюю - та вискакує ця помилка довжини
-
Jay228
Member
Shpoker
записати. через довжину файлу. довжина папок теж не скрізь адекватна лае думаю в ліміт поміщається.
нажаль скрипти не вмію писати. а немає програмки яка б такі випадки аналізувала ?
ще шукаючи наткнувся на таку статтю - тобто на самому сервері де лежать файли можливо змінили цей ліміт.
але тоді я не розумію чи має це вплив на файлову систему самого диску . і слідучим питанням іде те чи можна на цьому нас теж включити такий анліміт для його внутрішних дисків
записати. через довжину файлу. довжина папок теж не скрізь адекватна лае думаю в ліміт поміщається.
нажаль скрипти не вмію писати. а немає програмки яка б такі випадки аналізувала ?
ще шукаючи наткнувся на таку статтю - тобто на самому сервері де лежать файли можливо змінили цей ліміт.
але тоді я не розумію чи має це вплив на файлову систему самого диску . і слідучим питанням іде те чи можна на цьому нас теж включити такий анліміт для його внутрішних дисків
-
Shpoker
Member
- Звідки: Киев
Jay228
Подведем итоги, раз в нтфс и в ехт4 длинна имен файлов разрешена одинаковая и файл записался - то проблема с длинным путем до файла. Раз считать можешь а записать нет - то путь монтирования нтфс в твой нас короче, чем путь монтирования бэкап папки. Перемонтируй/пересоздай/ конечную папку в корне, обозвав ее одной буквой, дай юзерам права на запись в нее и скопируй свой бэкап с путем который стал короче (джава сорцы какие-то?)
Отправлено спустя 2 минуты 35 секунд:
Отправлено спустя 3 минуты 17 секунд:
1) bash list all disk files with full path
2) bash count symbols in each line
И получить со стековерфлоу 2 комманды и цикл фор, которые правильно впереть в скрипт - пригодится в жизни
Подведем итоги, раз в нтфс и в ехт4 длинна имен файлов разрешена одинаковая и файл записался - то проблема с длинным путем до файла. Раз считать можешь а записать нет - то путь монтирования нтфс в твой нас короче, чем путь монтирования бэкап папки. Перемонтируй/пересоздай/ конечную папку в корне, обозвав ее одной буквой, дай юзерам права на запись в нее и скопируй свой бэкап с путем который стал короче (джава сорцы какие-то?)
Отправлено спустя 2 минуты 35 секунд:
Вот тут тоже может быть проблема криворуких индусовJay228: ↑ 18.12.2024 11:39прямо в ньому в веб інтерфейсі
Отправлено спустя 3 минуты 17 секунд:
А вот это печаль, тогда в линуксе делать нечего, в любом случае, спросить 2 фразы у гуглаJay228: ↑ 18.12.2024 15:02нажаль скрипти не вмію писати
1) bash list all disk files with full path
2) bash count symbols in each line
И получить со стековерфлоу 2 комманды и цикл фор, которые правильно впереть в скрипт - пригодится в жизни
-
vladdelkafa
Member
- Звідки: Киев
Я себе под Windows/PowerShell написал скрипт, мб кому пригодится.
Можно просто скопировать код, создать файл plc.ps1, вставить туда код, сохранить.
Дальше просто кинуть файл туда, откуда нужно провести рекурсивное сканирование.
Правый клик -> Run with PowerShell.
Скрипт по умолчанию сканирует всё, что находится в директории рядом с собой (и ниже по структуре) и логгирует все объекты, превышающие стандартный лимит.
На выходе положит рядом с собой два лога: в одном только имена проблемных файлов, в другом - с длиной пути к ним в качестве префикса.
Если запускать через консоль, там тоже всё логгируется ессно.
Также заложены некоторые параметры, из полезных: -singlelog -path и -threshold
Т.е. если хотим просканировать директорию C:\Useless на файлы, у которых путь длиннее 150-ти символов и не хотим плодить логи, то юзаем:
.\plc.ps1 -path "C:\Useless" -threshold 150 -singlelog
В целом это всё больше от софта зависит.
Виндовый проводник (win11 23H2) вот у меня без проблем читает файлы с избыточной длиной пути, но писать такой файл уже не хочет и лишние символы отрезает.
А тот же totalcmd писать - пишет (прокидывая алерт на всякий), но читать уже нормально не хочет
- спойлер
Код: Виділити все
# PATH LENGTH CHECKER by 64U # if getting Execution Policy related error while running, use command below: # Set-ExecutionPolicy Bypass # By default the script will recursively scan a folder from which it's invoked # Alternatively you can run it with param to scan specified folder like: # .\plc.ps1 -path "C:\Different\Path" # Also you can us threshold variable # .\plc.ps1 -path "C:\Different\Path" -threshold 150 # FYI # While Windows' standard file system (NTFS) supports paths up to 65,535 characters, # Windows imposes a maximum path length of 255 characters (without drive letter), the value of the constant MAX_PATH. # DEFAULT PARAMS # We're using threshold = 259 since unicode adding \\?\ prefix to the basic path param ( [string]$path = ( Split-Path -Parent $MyInvocation.MyCommand.Path ), [int]$threshold = 259, [switch]$consolelog = $true, [switch]$singlelog = $false, [switch]$clearscreen = $true, [switch]$logfilenamesonly = $false ) $rev = "241219-7" # GET CURRENT SCRIPT PATH $scriptPath = Split-Path -Parent $MyInvocation.MyCommand.Path # DEFINE PATH VARIABLE efine path variable with default value $path = if ($path) { $path } else { $scriptPath } # YOU CAN ALSO UNCOMMENT LINE BELOW AND SET FIXED PATH FOR CHECKUP # $path = "C:\Downloads\" # LOG FILE NAMING $logDate = Get-Date -Format "yyyyMMdd_HHmmss" $logFile = Join-Path $scriptPath "plc_$logDate.log" # LOG FILE WITH FILE NAMES ONLY $logFile_fo = Join-Path $scriptPath "plc_$logDate.fo.log" # ENABLING LONG PATH SUPPORT VIA REGISTRY (requires admin rights) Set-ItemProperty 'HKLM:\System\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1 -Type DWord # ADDING INITIAL LOG ENTRY if ($singlelog) { $logFile = Join-Path $scriptPath "plc.main.log" $logFile_fo = Join-Path $scriptPath "plc.fo.log" "########################################" | Out-File -FilePath $logFile -Append "Log created on $(Get-Date)" | Out-File -FilePath $logFile -Append "Scan path: $path" | Out-File -FilePath $logFile -Append "########################################" | Out-File -FilePath $logFile -Append "########################################" | Out-File -FilePath $logFile_fo -Append "Log created on $(Get-Date)" | Out-File -FilePath $logFile_fo -Append "Scan path: $path" | Out-File -FilePath $logFile_fo -Append "########################################" | Out-File -FilePath $logFile_fo -Append } else { "########################################" | Out-File -FilePath $logFile "Log created on $(Get-Date)" | Out-File -FilePath $logFile -Append "Scan path: $path" | Out-File -FilePath $logFile -Append "########################################" | Out-File -FilePath $logFile -Append "########################################" | Out-File -FilePath $logFile_fo "Log created on $(Get-Date)" | Out-File -FilePath $logFile_fo -Append "Scan path: $path" | Out-File -FilePath $logFile_fo -Append "########################################" | Out-File -FilePath $logFile_fo -Append } if ($clearscreen) { clear } Write-Host -NoNewLine -ForegroundColor Green 'PATH LENGTH CHECKER by 64U '; Write-Host -ForegroundColor Gray 'revision' $rev `n if ($singlelog) { echo "Using a single log file scheme, with appended data. `n" } else { echo "Log file created on $(Get-Date) `n" } echo "Checking for files:" echo "- with path length longer than $threshold symbols" echo "- within $path `n" if ($consolelog) { echo "Listing problematic files below (if any)" } # USING UNICODE PATH PREFIX FOR HANDLING LONG PATHS $longPath = "\\?\$path" # MAIN SCAN FOR LONG PATHS (using -LiteralPath) Get-ChildItem -LiteralPath $longPath -Recurse -Force | Select-Object FullName, @{Name="PathLength";Expression={$_.FullName.Length}} | Where-Object {$_.PathLength -gt $threshold} | ForEach-Object { if ($consolelog) { Write-Host -ForegroundColor DarkYellow $($_.FullName) } "[$($_.PathLength) characters] $($_.FullName)" | Out-File -FilePath $logFile -Append "$($_.FullName)" | Out-File -FilePath $logFile_fo -Append }
Можно просто скопировать код, создать файл plc.ps1, вставить туда код, сохранить.
Дальше просто кинуть файл туда, откуда нужно провести рекурсивное сканирование.
Правый клик -> Run with PowerShell.
Скрипт по умолчанию сканирует всё, что находится в директории рядом с собой (и ниже по структуре) и логгирует все объекты, превышающие стандартный лимит.
На выходе положит рядом с собой два лога: в одном только имена проблемных файлов, в другом - с длиной пути к ним в качестве префикса.
Если запускать через консоль, там тоже всё логгируется ессно.
- спойлер
Также заложены некоторые параметры, из полезных: -singlelog -path и -threshold
Т.е. если хотим просканировать директорию C:\Useless на файлы, у которых путь длиннее 150-ти символов и не хотим плодить логи, то юзаем:
.\plc.ps1 -path "C:\Useless" -threshold 150 -singlelog
В целом это всё больше от софта зависит.
Виндовый проводник (win11 23H2) вот у меня без проблем читает файлы с избыточной длиной пути, но писать такой файл уже не хочет и лишние символы отрезает.
А тот же totalcmd писать - пишет (прокидывая алерт на всякий), но читать уже нормально не хочет
-
Jay228
Member
Shpoker
ще буду пробувати не напряму с юсб підключеного до нас а по мережі прегнати на нас с під вінди . через тотал командер . він в таких випадках буде питати чи залишати таку довжину шляху. але не факт що поможе . і це не в робочий час щоб трафік не забивати .
по другому пункту згоден . система має бути більш гнучкою для налаштування . їх DSM все ж таки лінуксоїдний
3й пункт. не дуже зрозумів. зараз у мене файли та їх повний бекап не на лінуксі а в вінді . тож може не обовязково використовувати скріпти а є якайсь віндовс програмка яка чекає довжину файлів ?
Відправлено через 11 хвилин :
ще буду пробувати не напряму с юсб підключеного до нас а по мережі прегнати на нас с під вінди . через тотал командер . він в таких випадках буде питати чи залишати таку довжину шляху. але не факт що поможе . і це не в робочий час щоб трафік не забивати .
по другому пункту згоден . система має бути більш гнучкою для налаштування . їх DSM все ж таки лінуксоїдний
3й пункт. не дуже зрозумів. зараз у мене файли та їх повний бекап не на лінуксі а в вінді . тож може не обовязково використовувати скріпти а є якайсь віндовс програмка яка чекає довжину файлів ?
Відправлено через 11 хвилин :
а -threshold чому саме 150 ?vladdelkafa: ↑ 19.12.2024 09:42-threshold
так навіть якщо зчитає і відкриє то все рівно можуть вилазити якісь косяки. наприклад відкрили такий 255+ символьний фалик і пустили на друк ... і все , потрібно буде презавантажувати мережевий прінтер )В целом это всё больше от софта зависит.
Виндовый проводник (win11 23H2) вот у меня без проблем читает файлы с избыточной длиной пути, но писать такой файл уже не хочет и лишние символы отрезает.
А тот же totalcmd писать - пишет (прокидывая алерт на всякий), но читать уже нормально не хочет
-
vladdelkafa
Member
- Звідки: Киев
Це під специфічні завдання.Jay228: ↑ 19.12.2024 10:13 а -threshold чому саме 150 ?
Зазвичай цей парам можна не чіпати - по дефолту там стоять коректні 259 (255 + \\?\ додані юнікодом).
Тут Windows Explorer скоріше допомагає такі файли швидко забрати та кудись (на більш короткий шлях) перенести.Jay228: ↑ 19.12.2024 10:13 так навіть якщо зчитає і відкриє то все рівно можуть вилазити якісь косяки. наприклад відкрили такий 255+ символьний фалик і пустили на друк ... і все , потрібно буде презавантажувати мережевий прінтер )
-
Jay228
Member
vladdelkafa
Shpoker
так вже день йде копіювання через тотал прямо з вінди. поки пмилок немає. єдино що вякийсь момент перестав відображаться процес копіювання в тоталі але сама шкала копіювання на значку є. побачим що з цього вийде
Shpoker
так вже день йде копіювання через тотал прямо з вінди. поки пмилок немає. єдино що вякийсь момент перестав відображаться процес копіювання в тоталі але сама шкала копіювання на значку є. побачим що з цього вийде
-
Jay228
Member
vladdelkafa
Shpoker
наче все переписалось . до біта не порівнював бо дуже багато папок . також виявилось що надеякі папки в мене банально не було доступу. але це позаду.
і ще зустрілась така помилка
Shpoker
наче все переписалось . до біта не порівнював бо дуже багато папок . також виявилось що надеякі папки в мене банально не було доступу. але це позаду.
і ще зустрілась така помилка
- спойлер
-
Shpoker
Member
- Звідки: Киев
Jay228
Ах ты ж ё, русский текст да еще и с пробелами... Там жеж длинна делится на 2 шо в пути шо в названии
Да, нормально.
Ах ты ж ё, русский текст да еще и с пробелами... Там жеж длинна делится на 2 шо в пути шо в названии
Да, нормально.
-
Jay228
Member
Shpoker
сам факт мене дивує що через тотал пустило . виходить помилка в довжині проявляється тільки при внутрішньому преміщенні між дисками в самій системі Nas .
дякую за допомогу
сам факт мене дивує що через тотал пустило . виходить помилка в довжині проявляється тільки при внутрішньому преміщенні між дисками в самій системі Nas .
дякую за допомогу