Otázka :Spustil jsem cron na linuxovém serveru, abych jednou denně zálohoval svůj web. Ale tyto zálohy stahuji do svého místního počítače (což je Windows) přibližně jednou za týden. Je možné automatizovat přenos souborů z Linuxu do Windows?
Odpověď:
Ano můžeš. Podívejte se na funkci skriptování a automatizace WinSCP.
V tomto tutoriálu vysvětlím, jak napsat dávkový skript pro automatizaci přenosu souborů mezi Linuxem a Windows pomocí WinSCP a poté skript naplánovat pomocí Plánovače úloh ve Windows.
Předpoklady:Předpokládám, že SSH server běží na počítači se systémem Linux a místní počítač je Windows 10.
Zápis dávkového skriptu pro automatizaci přenosu souborů z Linuxu do Windows
Řekl jsem psaní dávkového skriptu? Vlastně jsem to nemyslel, místo toho budeme ke generování dávkového skriptu používat WinSCP.
Krok 1 :Spusťte aplikaci WinSCP.
Krok 2 :Nejprve zkontrolujte verzi WinSCP
Krok 3 :Pokud používáte starší verzi WinSCP, musíte si stáhnout a nainstalovat nejnovější verzi.
Krok 4 :Po instalaci nejnovější verze spusťte WinSCP.
Krok 5 :Přihlaste se k počítači se systémem Linux (vzdálený) zadáním nezbytných údajů, jako je IP adresa, uživatelské jméno a heslo.
Krok 6 :Po úspěšném přihlášení klikněte na Relace> Generovat adresu URL/kód relace z nabídky.
Krok 7 :V části „Generovat adresu URL/kód relace “, vyhledejte „Heslo “. Pokud je zakázáno, musíte jej povolit pro automatizaci přenosu souborů. Chcete-li to provést, musíte relaci uložit s nezbytným uživatelským jménem a heslem.
Upozornění:Nedoporučuje se ukládat heslo, ale pokud se chcete automaticky přihlašovat a přenášet soubory, musíte heslo uložit.
Krok 8 :Vyberte „Skript “ a vyberte „Dávkový soubor ” ve Formát pole.
Krok 9 :Klikněte na „Kopírovat do schránky ” a vložte kód do poznámkového bloku.
Krok 10 :Upravte řádek „Váš příkaz 1 “ a „Váš příkaz 2 “. Příkazy lze získat, dát nebo synchronizovat .
Pokud například chcete vložit/nahrát soubor do vzdáleného adresáře, příkaz zní takto:
Zadejte syntaxi:
put <file> [ [ <file2> ... ] <directory>/[ <newname> ] ]
Uveďte příklady příkazů:
put file.html
put d:\www\file.html
Příklady příkazů:
get file.html d:\www\
Pokud chcete synchronizovat složky mezi vzdáleným a místním počítačem, musíte použít synchronize local/remote/both příkazy. Níže uvedený skript to ukazuje.
@echo off "C:\Program Files (x86)\WinSCP\WinSCP.com" ^ /log="E:\Backup\WinSCP.log" /ini=nul ^ /command ^ "open sftp://username:[email protected]/ -hostkey=""ssh-rsa 2048 leave_the_key"" -rawsettings Cipher=""aes,blowfish,3des,chacha20,WARN,arcfour,des"" KEX=""ecdh,dh-gex-sha1,dh-group14-sha1,dh-group1-sha1,rsa,WARN""" ^ "synchronize local E:\Backup /home/domain/backup" ^ "exit" set WINSCP_RESULT=%ERRORLEVEL% if %WINSCP_RESULT% equ 0 ( echo Success ) else ( echo Error ) exit /b %WINSCP_RESULT
Ve výše uvedeném skriptu jsem použil lokální synchronizaci k synchronizaci souborů mezi vzdáleným a místním počítačem. To znamená, že změny ve vzdáleném adresáři budou aplikovány na lokální adresář.
Poznámka :Mrkev ( ^ ) se používá k rozdělení dlouhých příkazů.
Případně můžete použít
- synchronizovat vzdálené – změny z místního adresáře se aplikují na vzdálený adresář.
- synchronizovat oba – změní vzdálený i místní adresář.
Krok 11 :Uložte skript jako .bat (BATCH) soubor.
Krok 12 :Dvojitým kliknutím na dávkový soubor otestujte skript. Měli byste vidět příkazové okno zobrazující stav přenosu souboru.
Vytvořit úlohu v Plánovači úloh systému Windows
Nakonec naplánujeme dávkový skript pomocí plánovače úloh systému Windows. Pravděpodobně budete chtít naplánovat zálohování na 3:00 každý den nebo každé pondělí.
Krok 1 :Spusťte program Plánovač úloh
Krok 2 :V nabídce klikněte na Akce> Vytvořit úkol
Krok 3 :Nastavte název úlohy, spouštěče, akci a podmínky, jak je uvedeno níže:
Krok 4 :Ověřte, zda byla úloha vytvořena správně. Chcete-li to provést, musíte kliknout na uzel „Knihovna plánovače úloh“ na levém bočním panelu a zobrazit seznam úkolů na prostředním panelu.
Krok 5 :Chcete-li skript otestovat, klikněte pravým tlačítkem na úlohu a vyberte „Spustit “.
Pokud chcete vytvořit zálohu úlohy, klikněte na úlohu pravým tlačítkem a vyberte Exportovat .