2009-11-09 13 views
13

Pracuję nad wieloma stronami internetowymi z plikami pochodzącymi z 2000 roku. Strony te stały się organicznie w miarę upływu czasu, powodując dużą liczbę osieroconych stron internetowych, w tym pliki, obrazy, pliki CSS, pliki JavaScript, itd. ... Te osierocone pliki powodują szereg problemów, w tym słabą łatwość obsługi, potencjalne luki w zabezpieczeniach, słabą jakość obsługi klienta i maniaków OCD/GTD, takich jak ja.Znajdowanie i usuwanie osieroconych stron internetowych, obrazów i innych powiązanych plików

Te numery plików w tysiącach, więc całkowicie ręczne rozwiązanie nie jest możliwe. Ostatecznie proces oczyszczania będzie wymagał dość dużego wysiłku zapewnienia jakości, aby upewnić się, że nie usunęliśmy nieumyślnie potrzebnych plików, ale mam nadzieję, że opracuję rozwiązanie technologiczne, które przyspieszy ręczny wysiłek. Dodatkowo mam nadzieję, że wprowadzę procesy/narzędzia, które pomogą zapobiec temu dezorganizacji w przyszłości.

Uwarunkowania środowiskowe:

  • klasycznym ASP i .Net
  • serwerów Windows działa IIS 6 i IIS 7
  • środowisk (DEV, integracja, QA, scena, prodction)
  • TFS Kontrola źródła

Zanim zacznę, chciałbym uzyskać informacje zwrotne od innych osób, które pomyślnie przeszły nawigację podobny proces.

Konkretnie szukam:

  • proces identyfikacji i oczyszczania osieroconych plików
  • proces utrzymanie środowisk czysty od osieroconych plików
  • narzędzi, które pomagają zidentyfikować osierocone pliki
  • narzędzia, które ułatwiają identyfikuj niedziałające linki (po usunięciu plików)

I a Nie szukam:

  • Rozwiązań dla mojej organizacyjnej OCD ... Lubię jak jestem.
  • SnIDE komentuje nas wciąż używając klasycznego ASP. Już czuję ból. Nie ma potrzeby wcierania go.

Odpowiedz

1

Krok 1: Stwórz listę stron w witrynie, które są zdecydowanie widoczne. Jednym z inteligentnych sposobów utworzenia tej listy jest analiza plików dziennika dla stron odwiedzanych przez użytkowników.

Krok 2: Uruchom narzędzie rekurencyjnie wyszukujące topologię lokacji, zaczynając od specjalnie napisanej strony (którą utworzysz w swojej witrynie), która ma link do każdej strony w kroku 1. Jednym z narzędzi, które może to zrobić, jest Xenu's Link Sleuth . Jest przeznaczony do wyszukiwania martwych linków, ale będzie również wyświetlał linki na żywo. Można go uruchomić zewnętrznie, więc nie ma żadnych problemów z bezpieczeństwem podczas instalowania "dziwnego" oprogramowania na serwerze. Będziesz musiał to oglądać od czasu do czasu, ponieważ witryna może mieć nieskończone strony i tym podobne, jeśli masz błędy lub cokolwiek innego.

Krok 3: Uruchom narzędzie, które rekursywnie odwzorowuje dysk twardy, zaczynając od katalogu witryny. Nie mogę myśleć o żadnej z tych rzeczy z mojej głowy, ale pisanie powinno być banalne i bezpieczniejsze, ponieważ będzie działało na twoim serwerze.

Krok 4: Podejmij wyniki kroków 2 i 3 programowo dopasuj # 2 do # 3. Wszystko w # 3 nie w # 2 jest potencjalnie osieroconą stroną.

Uwaga: Ta technika działa słabo z zabezpieczeniami chronionymi hasłem, a także działa słabo w witrynach korzystających w dużej mierze z dynamicznie generowanych łączy (zawartość dynamiczna jest w porządku, jeśli łącza są spójne).

1

Brak komentarzy o snide tutaj ... Czuję twój ból, ponieważ duża część naszej strony wciąż jest w klasycznej ASP.

Nie znam żadnych w pełni zautomatyzowanych systemów, które będą magiczną kulą, ale mam kilka pomysłów na to, co może pomóc. Przynajmniej tak wyczyściliśmy naszą witrynę.

Po pierwsze, chociaż nie wydaje się to narzędziem do takiej pracy, wykorzystałem Microsoft Viso, aby pomóc w tym. Mamy Visio for Enterprise Architects i nie jestem pewien, czy ta funkcja jest w innych wersjach, ale w tej wersji możesz utworzyć nowy dokument, a w "wybierz typ rysunku" w folderze "Diagram sieci Web" jest opcja "mapy witryny" (jednostki metryczne lub amerykańskie - nie ma znaczenia).

Po utworzeniu tego typu rysunku program Visio wyświetli monit o podanie adresu URL witryny internetowej, a następnie wyszukuje i przeszukuje witrynę.

Powinno to pomóc w ustaleniu, które pliki są prawidłowe. Nie jest doskonały, ale sposób, w jaki go użyliśmy, polegał na znalezieniu plików w systemie plików, które nie pojawiły się na rysunku Visio, a następnie wyciągnięciu całego rozwiązania w Visual Studio i wyszukaniu tej nazwy pliku. Jeśli nie znaleźliśmy go w całym rozwiązaniu, przenieśliśmy go do folderu "Przestarzałe" na miesiąc i usunęliśmy go, jeśli nie zaczniemy otrzymywać skarg lub błędów 404 na stronie internetowej.

Inne możliwe rozwiązania to użycie parsera pliku dziennika i przeanalizowanie dzienników w ciągu ostatnich miesięcy i poszukiwanie brakujących plików w ten sposób, ale w zasadzie byłoby dużo kodu, aby wymyślić listę " znane dobre "pliki, które naprawdę nie są lepsze od opcji Visio.

2

Początkowo myślałem, że możesz uciec przez skanowanie plików pod kątem linków, a następnie zrobić różnicę w stosunku do struktury folderów - ale to tylko identyfikuje proste sieroty, a nie zbiory osieroconych plików, które się ze sobą nawzajem odwołują. Używanie grep prawdopodobnie nie doprowadzi cię do końca.

To nie jest trywialne rozwiązanie, ale byłoby doskonałym narzędziem do utrzymania czystego środowiska (a zatem warte wysiłku). Ponadto można go ponownie używać we wszystkich środowiskach (i udostępniać je innym!).

Podstawową ideą jest ustawienie i wypełnienie wykresu kierunkowego, w którym klucz każdego węzła jest ścieżką absolutną. Odbywa się to poprzez skanowanie wszystkich plików oraz dodawanie zależności - na przykład:

/index.html  -> /subfolder/file.jpg 
       -> /subfolder/temp.html 
       -> /error.html 
/temp.html  -> /index.html 
/error.html  
/stray.html  -> /index.html 
/abandoned.html 

Następnie można zidentyfikować wszystkie swoje „osiągalne” pliki wykonując BFS na swojej stronie głównego.

Za pomocą wykresu kierunkowego można również klasyfikować pliki według ich stopnia wejścia i wyjścia. W powyższym przykładzie:

/index.html  in: 1 out: 2 
/temp.html  in: 1 out: 1 
/error.html  in: 1 out: 0 
/stray.html  in: 0 out: 1 
/abandoned.html in: 0 out: 0 

Poszukujesz w zasadzie plików, które mają w = 0, które zostały porzucone.

Dodatkowo pliki, które mają out = 0, będą stronami końcowymi; które mogą być lub nie są pożądane w Twojej witrynie (jak sugeruje błąd, jest to strona błędu).

+0

Być może tutaj jest projekt open source. –

+0

Nie mam nic przeciwko temu. :) – emptyset

0

Byłem tam, robiłem to wiele razy. Dlaczego typy zawartości nie mogą same się posprzątać? Osobiście trafiłem na coś takiego:

1) Uzyskaj kopię witryny działającej w środowisku kontroli jakości.

2) Skorzystaj z selinum (lub innego narzędzia testowego opartego na przeglądarce), aby utworzyć zestaw testów dla rzeczy, które działają.

3) Rozpocznij usuwanie elementów, które powinny zostać usunięte.

4) Wykonaj testy od # 2 po usunięciu rzeczy, aby upewnić się, że nadal działa.

5) Powtarzaj nr 3 & 4, dopóki nie będziesz zadowolony.

+0

Myślę, że OP szuka mniej ręcznego rozwiązania. pytanie jest bardziej skoncentrowane na # 3, musi określić, co można usunąć. – Tester101

Powiązane problemy