Jak zautomatyzować wysyłanie pliku na serwer FTP za pomocą skryptu?

9

Muszę zrobić skrypt, który pobiera określony plik dziennika /var/log/i umieszcza go w miejscu, w którym mogę go łatwo uzyskać (najprawdopodobniej mam dostęp do serwera WWW lub FTP). Nie sądzę, że chcę użyć poczty do jej wysłania. Webdav może być opcją. Musi po prostu działać bez udziału użytkownika i być dość szybki i bezbolesny. Jakieś sugestie? (zasadniczo nie wymaga hasła)

CaptSaltyJack
źródło

Odpowiedzi:

12
  • Pliki dziennika /var/logsą zwykle czytelne na całym świecie i nie wymagają hasła, aby uzyskać dostęp.
  • Jeśli masz już serwer FTP - może być również back-endem do serwera WWW - najprostszą opcją IMO jest użycie tego wputnarzędzia.
    • Zainstaluj go, sudo apt-get install wputjeśli to konieczne.
    • Składnia jest następująca:
      wput [opcje] [plik] ... [url] ...
    • gdzie adres URL ma postać:
      ftp: // [nazwa użytkownika [: hasło] @] nazwa hosta [: port] [/ [ścieżka /] [plik]]
  • Przykład:

    wput / var / log / syslog ftp: // jack: [email protected]/www/mylogs/ 
    
  • Użyj -uopcji, aby wymusić przesłanie, gdy plik docelowy już istnieje.

  • Zobacz wput --helplub man wputwiele innych opcji.

Uwaga: Umieszczenie hasła w postaci zwykłego tekstu, jak w powyższych przykładach, jest ogólnie bardzo niepewne; Zdecydowanie zalecam utworzenie ograniczonego konta FTP na serwerze, które zezwala tylko na przesyłanie do specjalnego katalogu utworzonego do pobierania / przeglądania dzienników.

ish
źródło
Cześć, Dzięki bardzo za to, właśnie tego potrzebuję, wiem, że to stary wątek, ale mam problemy z katalogami. Kiedy używam wput na serwerze zdalnym, zawsze tworzy drzewo katalogów do miejsca docelowego plików, czy można po prostu skopiować pliki bez tworzenia całego drzewa katalogów na komputerze zdalnym?
Aleksandar Đorđević
0

Innym przydatnym i bezpiecznym poleceniem, którego możesz użyć, byłoby scppolecenie, które używa ssh do kopiowania plików tam i z powrotem.

Aby tego użyć, możesz użyć konika morskiego, aby utworzyć parę kluczy ssh i skopiować publiczną część klucza do ~ / .ssh /. Nie powinieneś chronić hasła, którego używasz do tego hasła, ponieważ nie chcesz się logować, aby go użyć. Prawdopodobnie powinieneś używać tylko pary haseł, której używasz do tego skryptu. Aby ją wybrać, użyj opcji tożsamości scp -i.

Klucz prywatny zastępuje hasło w postaci zwykłego tekstu.

Zakładam, że w razie potrzeby możesz umieścić wywołanie skryptu w swoim crontabie.

Korzystając z pomocy izx, musisz uważać, aby chronić miejsce, w którym umieszczasz skrypt, aby chronić hasło „słone” dla zdalnego komputera przed wścibskimi oczami. Dzięki takiemu podejściu musisz zachować taką samą ostrożność, aby chronić prywatną część pary kluczy, ponieważ nie jest ona chroniona hasłem.

John S Gruber
źródło