Synology Drive - Lista plików/katalogów niezsynchronizowanych
- adjustin
- Wtajemniczony
- Posty: 207
- Rejestracja: pn lip 11, 2016 5:21 pm
- Lokalizacja: Żory/Rybnik/Katowice
Synology Drive - Lista plików/katalogów niezsynchronizowanych
Cześć wszystkim,
dzisiaj przywracałem kompa we firmie i zauważyłem, że mam na nim 1600 plików niezsynchronizowanych. Wiem z czego to wynika (za długa nazwa / bądź ścieżka) --> doczytałem w ograniczeniach Synology.
OK, musze pogadać (chyba już tysięczny raz) z pracownikami co do zasady nazewnictwa plików i katalogów. Ale:
super, że widzę tę informację w kliencie Synology Drive, jednakże chyba pół życia stracę, jak będę przeglądał każdą pozycję (do tego ścieżka pokazuje się w "dymku").
Czy jest sposób, abym wyeksportował to do jakiegoś pliku? Albo gdzieś zbiorczo w serwerze miał podgląd? Patrzyłem do Konsoli Administratora Synology Drive i nie widzę tam pozycji niezsynchronizowanych.
Nie ukrywam, że bez tego jestem w czarnej...
Ktoś wie jak to zrobić?
dzisiaj przywracałem kompa we firmie i zauważyłem, że mam na nim 1600 plików niezsynchronizowanych. Wiem z czego to wynika (za długa nazwa / bądź ścieżka) --> doczytałem w ograniczeniach Synology.
OK, musze pogadać (chyba już tysięczny raz) z pracownikami co do zasady nazewnictwa plików i katalogów. Ale:
super, że widzę tę informację w kliencie Synology Drive, jednakże chyba pół życia stracę, jak będę przeglądał każdą pozycję (do tego ścieżka pokazuje się w "dymku").
Czy jest sposób, abym wyeksportował to do jakiegoś pliku? Albo gdzieś zbiorczo w serwerze miał podgląd? Patrzyłem do Konsoli Administratora Synology Drive i nie widzę tam pozycji niezsynchronizowanych.
Nie ukrywam, że bez tego jestem w czarnej...
Ktoś wie jak to zrobić?
DS120j (1 x WD Red 4 TB, Ext 4, 512 MB RAM)
DS718+ (2 x WD Red Pro 2 TB, Btrfs, Raid 1, 6 GB RAM)
DS718+ (2 x WD Red Pro 2 TB, Btrfs, Raid 1, 6 GB RAM)
- adjustin
- Wtajemniczony
- Posty: 207
- Rejestracja: pn lip 11, 2016 5:21 pm
- Lokalizacja: Żory/Rybnik/Katowice
Re: Synology Drive - Lista plików/katalogów niezsynchronizowanych
Widzę, że cisza jak makiem zasiał Nikt nie zderzył się z tym problemem?
DS120j (1 x WD Red 4 TB, Ext 4, 512 MB RAM)
DS718+ (2 x WD Red Pro 2 TB, Btrfs, Raid 1, 6 GB RAM)
DS718+ (2 x WD Red Pro 2 TB, Btrfs, Raid 1, 6 GB RAM)
-
- Wtajemniczony
- Posty: 192
- Rejestracja: śr sty 27, 2016 12:37 pm
Re: Synology Drive - Lista plików/katalogów niezsynchronizowanych
Nigdy nie miałem tego problemu, ale spróbowałem testowo synchronizować plik z zbyt długą nazwą, oczywiście nie poleciał na serwer. Oto co zrobiłem:
- w Synology Drive Client na kompie: Rozwiązywanie problemów -> Eksportuj dziennik diagnostyczny -> Export
- po rozpakowaniu pliku .zip w katalogu log jest pliczek deamon.log, w którym po wyszukaniu frazy '[ERROR] detector-win2.cpp(843): can't find file type of deleted item' znalazłem pełną ścieżkę do pliku, który się nie synchronizuje.
Może to jakoś Ci pomoże, bo jeśli okazałoby się, że można w ten sposób wyłapać wszystkie wadliwe ścieżki to z pliku txt już łatwo to wrzucić np. do Excela i tam jakoś obrobić. Innego pomysłu nie mam. I faktycznie logi w Konsoli Administratora Synology Drive (mimo wyszukiwarki) niewiele dają.
- w Synology Drive Client na kompie: Rozwiązywanie problemów -> Eksportuj dziennik diagnostyczny -> Export
- po rozpakowaniu pliku .zip w katalogu log jest pliczek deamon.log, w którym po wyszukaniu frazy '[ERROR] detector-win2.cpp(843): can't find file type of deleted item' znalazłem pełną ścieżkę do pliku, który się nie synchronizuje.
Może to jakoś Ci pomoże, bo jeśli okazałoby się, że można w ten sposób wyłapać wszystkie wadliwe ścieżki to z pliku txt już łatwo to wrzucić np. do Excela i tam jakoś obrobić. Innego pomysłu nie mam. I faktycznie logi w Konsoli Administratora Synology Drive (mimo wyszukiwarki) niewiele dają.
DS720+ | RAM Crucial 8GB DDR-2666 SODIMM | 2 x WD Red 6TB | Btrfs
- adjustin
- Wtajemniczony
- Posty: 207
- Rejestracja: pn lip 11, 2016 5:21 pm
- Lokalizacja: Żory/Rybnik/Katowice
Re: Synology Drive - Lista plików/katalogów niezsynchronizowanych
Dziękuję za odpowiedź.
Możesz mi tylko podpowiedzieć, gdzie jest ta opcja: "Rozwiązywanie problemów -> Eksportuj dziennik diagnostyczny -> Export"? Może mówisz o MACu? Bo pod WIndowsem tego jakoś nie widzę. Jednakże domyślam się, że chodzi o plik w ścieżce:
C:\Users\[nazwa użytkownika]\AppData\Local\SynologyDrive\log
Tyle że jest tam sporo plików deamon.log z dopiskiem "_0", "_1", "_2" itd..
Pomysł fajny. Ale chyba to nie to. Bo te errory pokazują mi pliki, które się zsynchronizowały lecz były z nimi jakieś problemy.
Najlepsze jest to, że gdy pliki synchronizują się z komputera do Serwera to jest OK. Co więcej widać od razu że jest coś nie tak ponieważ mam wtedy czerwony krzyżyk i poprawiam nazwę. Problem pojawia się w drugą stronę. Gdy pliki są ciągnięte z serwera do "czystego kompa" pod Windowsem. Wcześniej nigdy nie zwróciłem na to uwagi. Dopiero od jakiegoś czasu, gdy w Synology Drive Client wprowadzili komunikat o plikach niesynchronizowanych.
Co więcej, zjawisko to widziałem już w 4 firmach z różnymi Synology.
Czyli to wygląda tak, jakby nazwa pliku (przykładowo) ma sporo znaków (zapisuje się pod Windowsem) i się synchronizuje z serwerem bez problemu (pod warunkiem, że nazwa pliku nie będzie na tyle długa aby pokazać przy pliku czerwony krzyżyk). Ale w drugą stronę Windows już nie przyjmie, bo przeliczy, że ta nazwa przekracza 256 bitów (niektóre znaki w zależności od kodowania "ważą więcej lub mniej bitów". Pytanie, czy prawidłowo Synology dogaduje się z Windowsem. Chyba, że czegoś nie rozumiem.
Możesz mi tylko podpowiedzieć, gdzie jest ta opcja: "Rozwiązywanie problemów -> Eksportuj dziennik diagnostyczny -> Export"? Może mówisz o MACu? Bo pod WIndowsem tego jakoś nie widzę. Jednakże domyślam się, że chodzi o plik w ścieżce:
C:\Users\[nazwa użytkownika]\AppData\Local\SynologyDrive\log
Tyle że jest tam sporo plików deamon.log z dopiskiem "_0", "_1", "_2" itd..
Pomysł fajny. Ale chyba to nie to. Bo te errory pokazują mi pliki, które się zsynchronizowały lecz były z nimi jakieś problemy.
Najlepsze jest to, że gdy pliki synchronizują się z komputera do Serwera to jest OK. Co więcej widać od razu że jest coś nie tak ponieważ mam wtedy czerwony krzyżyk i poprawiam nazwę. Problem pojawia się w drugą stronę. Gdy pliki są ciągnięte z serwera do "czystego kompa" pod Windowsem. Wcześniej nigdy nie zwróciłem na to uwagi. Dopiero od jakiegoś czasu, gdy w Synology Drive Client wprowadzili komunikat o plikach niesynchronizowanych.
Co więcej, zjawisko to widziałem już w 4 firmach z różnymi Synology.
Czyli to wygląda tak, jakby nazwa pliku (przykładowo) ma sporo znaków (zapisuje się pod Windowsem) i się synchronizuje z serwerem bez problemu (pod warunkiem, że nazwa pliku nie będzie na tyle długa aby pokazać przy pliku czerwony krzyżyk). Ale w drugą stronę Windows już nie przyjmie, bo przeliczy, że ta nazwa przekracza 256 bitów (niektóre znaki w zależności od kodowania "ważą więcej lub mniej bitów". Pytanie, czy prawidłowo Synology dogaduje się z Windowsem. Chyba, że czegoś nie rozumiem.
DS120j (1 x WD Red 4 TB, Ext 4, 512 MB RAM)
DS718+ (2 x WD Red Pro 2 TB, Btrfs, Raid 1, 6 GB RAM)
DS718+ (2 x WD Red Pro 2 TB, Btrfs, Raid 1, 6 GB RAM)
-
- Wtajemniczony
- Posty: 192
- Rejestracja: śr sty 27, 2016 12:37 pm
Re: Synology Drive - Lista plików/katalogów niezsynchronizowanych
Synology Drive Client uruchomiony komputerze, potem 'trzy kropki' i dalej jak wyżej.
Źle zrozumiałem Twój problem i przyjąłem, że plik z długa nazwą ktoś tworzy na komputerze i on nie leci na serwer, a to ma być odwrotnie. Spróbuję coś jeszcze potestować, ale wydaje się, że mój pomysł jest do bani.
DS720+ | RAM Crucial 8GB DDR-2666 SODIMM | 2 x WD Red 6TB | Btrfs
- adjustin
- Wtajemniczony
- Posty: 207
- Rejestracja: pn lip 11, 2016 5:21 pm
- Lokalizacja: Żory/Rybnik/Katowice
Re: Synology Drive - Lista plików/katalogów niezsynchronizowanych
Dobra, mam ten eksport.
Zrobię pewien test. Pamiętam, z którymi katalogami był problem. Zsynchronizuję je z czystym kompem/kontem i przeanalizuję ten log, żeby znaleźć te komunikaty, które za dot. przedmiotowego problemu. Dam znać.
Ale połowa sukcesu już jest. Wielkie dzięki.
Zrobię pewien test. Pamiętam, z którymi katalogami był problem. Zsynchronizuję je z czystym kompem/kontem i przeanalizuję ten log, żeby znaleźć te komunikaty, które za dot. przedmiotowego problemu. Dam znać.
Ale połowa sukcesu już jest. Wielkie dzięki.
DS120j (1 x WD Red 4 TB, Ext 4, 512 MB RAM)
DS718+ (2 x WD Red Pro 2 TB, Btrfs, Raid 1, 6 GB RAM)
DS718+ (2 x WD Red Pro 2 TB, Btrfs, Raid 1, 6 GB RAM)
-
- Wtajemniczony
- Posty: 192
- Rejestracja: śr sty 27, 2016 12:37 pm
Re: Synology Drive - Lista plików/katalogów niezsynchronizowanych
Tak już zupełnie poza konkursem i nieco humorystycznie: zamiast leczyć może lepiej zapobiegać chorobie? Oczyma wyobraźni widzę to tak: w harmonogramie zadań (uruchamianie np. co godzinę) jest zadanie z plikiem wsadowym, który wyszukuje pliki z długimi nazwami (albo raczej ścieżki) i je skraca do odpowiedniej, akceptowalnej długości. Pewno dałoby się taki bach napisać, może robocopy, ren lub coś podobnego, a może python. Kiedyś robiłem coś w ten deseń u siebie w pracy, ale używałem również sql. Jasne, że jest wyzwanie, ale czego się nie robi dla spokoju ducha?
Przykładowy plik .bat z kopiowaniem ścieżek do pliku tekstowego wygląda tak:
dir /b/ad/a-h X:\katalog_zrodlowy > X:\katalog_docelowy\wynik.txt
DS720+ | RAM Crucial 8GB DDR-2666 SODIMM | 2 x WD Red 6TB | Btrfs
- adjustin
- Wtajemniczony
- Posty: 207
- Rejestracja: pn lip 11, 2016 5:21 pm
- Lokalizacja: Żory/Rybnik/Katowice
Re: Synology Drive - Lista plików/katalogów niezsynchronizowanych
Z tym skryptem fajny pomysł. Dodałem, aby brane pod uwagę pliki. Zrobiłem coś takiego na podstawie Twojego pomysłu:
Teraz import pliku txt do Excela i funkcją "=DŁ()" wygenerować ilość znaków w osobnej kolumnie wobec każdej pozycji i na końcu posortować od największej liczby do najmniejszej
Kod: Zaznacz cały
@echo off
setlocal
chcp 65001 > nul
set "sourceDir=C:\Users\....\katalog do przeskanowania" # Jakiś wybrany katalog, który chcemy przeskanować.
set "outputFile=C:\Users\....\Downloads\wynik.txt" # Tutaj akurat katalog "Pobierz" w którym zapisany zostanie wynik.
dir /b /a-d /s "%sourceDir%" > "%outputFile%"
endlocal
DS120j (1 x WD Red 4 TB, Ext 4, 512 MB RAM)
DS718+ (2 x WD Red Pro 2 TB, Btrfs, Raid 1, 6 GB RAM)
DS718+ (2 x WD Red Pro 2 TB, Btrfs, Raid 1, 6 GB RAM)
- adjustin
- Wtajemniczony
- Posty: 207
- Rejestracja: pn lip 11, 2016 5:21 pm
- Lokalizacja: Żory/Rybnik/Katowice
Re: Synology Drive - Lista plików/katalogów niezsynchronizowanych
Jednakże nie zmienia to tematu, że nadal nie mogę skumać w czym rzecz. Jak już napisałem: zrobię test i napiszę co z niego wynika
DS120j (1 x WD Red 4 TB, Ext 4, 512 MB RAM)
DS718+ (2 x WD Red Pro 2 TB, Btrfs, Raid 1, 6 GB RAM)
DS718+ (2 x WD Red Pro 2 TB, Btrfs, Raid 1, 6 GB RAM)
-
- Wtajemniczony
- Posty: 192
- Rejestracja: śr sty 27, 2016 12:37 pm
Re: Synology Drive - Lista plików/katalogów niezsynchronizowanych
Taka ciekawostka, kazałem ChatGPT napisać skrypt batch wyświetlający TYLKO pliki, których ścieżka jest dłuższa niż 256 znaków, wynik powinien być zrzucony do pliku .txt. No i napisał. Działa pod warunkiem, że skrypt jest umieszczony w katalogu, który ma przeszukać:
Pewno można go zmodyfikować żeby mógł być umieszczony w dowolnym katalogu, można też pokusić się o to aby od razu skracał nazwy tych plików. Kto wie jakby to wyglądało w Pytonie. Ten ChatGPT nie jest taki głupi...
Edycja:
ChatGPT napisał skrypt w Pythonie znajdujący pliki, dla których ścieżka jest dłuższa niż 256 znaków, a następnie zmienia nazwy tych plików ucinając znaki od końca. Sprawdziłem, działa. Oryginalna odpowiedź ChatGPT:
W tym przykładzie należy zmienić wartość zmiennej target_directory na ścieżkę do katalogu, w którym chcesz zmieniać nazwy plików. Skrypt przechodzi przez wszystkie pliki w podanym katalogu i jego podkatalogach. Jeśli długość ścieżki pliku przekracza 256 znaków, tworzona jest nowa nazwa pliku z oryginalną ścieżką i odpowiednią ilością znaków od końca nazwy pliku (w tym przykładzie wycinamy ostatnie 10 znaków z nazwy pliku). Następnie pełna ścieżka dla nowej nazwy pliku jest tworzona przez połączenie oryginalnej ścieżki z nową nazwą pliku. Na końcu skrypt zmienia nazwę pliku na nową nazwę z zachowaniem pełnej ścieżki.
I skrypt Python:
Skrypt batch też napisał, ale u mnie nie działał, może coś skopałem. W każdym razie można się pobawić.
Kod: Zaznacz cały
@echo off
setlocal enabledelayedexpansion
set "directory=d:\test" #Zastąp to właściwą ścieżką do katalogu, który chcesz przeszukać
set "output=wynik.txt"
if exist "%output_file%" del "%output_file%"
for /r "%directory%" %%F in (*) do (
set "file_path=%%F"
if "!file_path:~256!" neq "" (
echo !file_path! >> "%output%"
)
)
endlocal
Edycja:
ChatGPT napisał skrypt w Pythonie znajdujący pliki, dla których ścieżka jest dłuższa niż 256 znaków, a następnie zmienia nazwy tych plików ucinając znaki od końca. Sprawdziłem, działa. Oryginalna odpowiedź ChatGPT:
W tym przykładzie należy zmienić wartość zmiennej target_directory na ścieżkę do katalogu, w którym chcesz zmieniać nazwy plików. Skrypt przechodzi przez wszystkie pliki w podanym katalogu i jego podkatalogach. Jeśli długość ścieżki pliku przekracza 256 znaków, tworzona jest nowa nazwa pliku z oryginalną ścieżką i odpowiednią ilością znaków od końca nazwy pliku (w tym przykładzie wycinamy ostatnie 10 znaków z nazwy pliku). Następnie pełna ścieżka dla nowej nazwy pliku jest tworzona przez połączenie oryginalnej ścieżki z nową nazwą pliku. Na końcu skrypt zmienia nazwę pliku na nową nazwę z zachowaniem pełnej ścieżki.
I skrypt Python:
Kod: Zaznacz cały
import os
def change_file_names(directory):
for root, dirs, files in os.walk(directory):
for file in files:
file_path = os.path.join(root, file)
file_name, file_ext = os.path.splitext(file)
# Sprawdzanie długości ścieżki
path_length = len(file_path)
# Sprawdzanie, czy ścieżka jest dłuższa niż 256 znaków
if path_length > 256:
# Tworzenie nowej nazwy pliku z oryginalną ścieżką i odpowiednią ilością znaków od końca nazwy pliku
new_file_name = file_name[:-10] # Przykładowo: Wycinamy ostatnie 10 znaków z nazwy pliku
# Tworzenie pełnej ścieżki dla nowej nazwy pliku
new_file_path = os.path.join(root, new_file_name + file_ext)
# Zmiana nazwy pliku
print(f"Zmieniam nazwę pliku: {file_path} na {new_file_path}")
os.rename(file_path, new_file_path)
# Podaj ścieżkę do katalogu, w którym chcesz zmieniać nazwy plików
target_directory = r"C:\Sciezka\Do\Katalogu"
change_file_names(target_directory)
print("Skrypt zakończył działanie.")
DS720+ | RAM Crucial 8GB DDR-2666 SODIMM | 2 x WD Red 6TB | Btrfs