Codzienne kopiowanie plików w batchu(Windows) na serwer Linuxa(używając ssh)

Do realizacji tego zadania bedziemy potrzebowali dwóch darmowych programów (Putty):

  • plink.exe – zdalne wydawanie komend na serwerze linux przez ssh
  • pscp.exe – przesył plików wykorzystując protokół ssh

Pobrane binarki wrzucamy do C:\ a następnie w tej samej lokalizacji tworzymy nasz skrypt video.bat

@echo OFF :: Czyszczenie plików tymczasowych break > %TEMP%\dir break > %TEMP%\fn :: Szukamy pliku do skopiowania ( wybieramy pierwszy, według daty utworzenia) DIR C:\FTP\program* /Q /O-D /B /S > "%TEMP%\dir" DIR C:\FTP\program* /Q /O-D /b /a-d > "%TEMP%\fn" :: Pobieramy po pierwszej z plików set /p firstDir= < "%TEMP%\dir" set /p firstFn= < "%TEMP%\fn" :: komenda do przemiany pliku na właściwe miejsce set linuxCmd=C:\plink.exe -batch -ssh user@10.10.10.10 -pw MyPassword mv '/home/tv/new/%firstFn%' '/home/tv/program_%DATA%.mp4' :: Przesył pliku i zdalne wywołanie komendy na serwerze linux C:\pscp.exe -batch -pw MyPassword "%firstDir%" user@10.10.10.10:/home/tv/new %linuxCmd%
video.bat

Zadanie skryptu jest banalne proste, ma kopiować najnowszy utworzony plik w lokalizacji c:\FTP\ o pasującej nazwie do wyrażenia program*
Teraz pozostało nam dodanie codziennego wywołanie tego skryptu przez system. Zrobimy to w Windows Task Scheduler. Najprościej i najszybciej używając komendy w konsoli(PPM na start menu -> Uruchom -> cmd.exe -> Enter):

schtasks.exe /Create /SC DAILY /TN "video do programu" /TR "C:\video.bat" /ST 16:00

Oczywiście możemy to wszystko zrobić przez graficzna przystawkę w systemie „Taskschd.msc” możemy ja znaleźć w Panel Sterowania -> System i zabezpieczenia -> Narzedzia Administracyjne-> Harmonogram zadań

Windows Task Scheduler

Windows Task Scheduler

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.