質問 : cronを実行しています Linuxサーバーで1日に1回私のWebサイトのバックアップを取ります。ただし、これらのバックアップを1週間に1回程度、ローカルマシン(Windows)にダウンロードします。 LinuxからWindowsへのファイル転送を自動化することは可能ですか?
回答:
はい、できます。 WinSCPのスクリプトおよび自動化機能をご覧ください。
このチュートリアルでは、WinSCPを使用してLinuxとWindows間のファイル転送を自動化するバッチスクリプトを作成し、Windowsのタスクスケジューラを使用してスクリプトをスケジュールする方法を説明します。
前提条件:SSHサーバーはLinuxマシンで実行されており、ローカルマシンはWindows10であると想定しています。
LinuxからWindowsへのファイル転送を自動化するバッチスクリプトの作成
バッチスクリプトを書くと言いましたか?実際には意味がありませんでした。代わりに、WinSCPを使用してバッチスクリプトを生成します。
ステップ1 :WinSCPアプリケーションを起動します。
ステップ2 :まず、WinSCPのバージョンを確認してください
ステップ3 :古いバージョンのWinSCPを使用している場合は、最新バージョンをダウンロードしてインストールする必要があります。
ステップ4 :最新バージョンをインストールした後、WinSCPを起動します。
ステップ5 :IPアドレス、ユーザー名、パスワードなどの必要な詳細を入力して、Linuxマシン(リモート)にログインします。
ステップ6 :ログインに成功したら、セッション>セッションURL/コードの生成をクリックします。 メニューから。
ステップ7 :「セッションURL/コードの生成」 」ダイアログで、「パスワード」を探します 」チェックボックス。無効になっている場合は、ファイル転送を自動化するために有効にする必要があります。そのためには、必要なユーザー名とパスワードを使用してセッションを保存する必要があります。
注意:パスワードを保存することはお勧めしませんが、ファイルを自動的にログインして転送する場合は、パスワードを保存する必要があります。
ステップ8 :「スクリプト」を選択します 」タブをクリックし、「バッチファイル」を選択します 」形式 フィールド。
ステップ9 :[クリップボードにコピー]をクリックします 」ボタンを押して、コードをメモ帳に貼り付けます。
ステップ10 :「コマンド1」の行を変更します 」と「あなたのコマンド2 「。コマンドはget、put、またはsynchronizeにすることができます 。
たとえば、ファイルをリモートディレクトリに配置/アップロードする場合、コマンドは次のようになります。
プット構文:
put <file> [ [ <file2> ... ] <directory>/[ <newname> ] ]
コマンドの例を入力してください:
put file.html
put d:\www\file.html
コマンドの例を取得する:
get file.html d:\www\
リモートマシンとローカルマシンの間でフォルダを同期する場合は、ローカル/リモート/両方の同期を使用する必要があります。 コマンド。以下のスクリプトはそれを示しています。
@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
上記のスクリプトでは、ローカル同期を使用しました リモートマシンとローカルマシン間でファイルを同期します。つまり、リモートディレクトリの変更はローカルディレクトリに適用されます。
注 :にんじん(^) 長いコマンドを分割するために使用されます。
または、
を使用することもできます- リモート同期 –ローカルディレクトリからの変更はリモートディレクトリに適用されます。
- 両方を同期する –リモートディレクトリとローカルディレクトリの両方を変更します。
ステップ11 :スクリプトを .batとして保存します (バッチ)ファイル。
ステップ12 :バッチファイルをダブルクリックして、スクリプトをテストします。ファイル転送のステータスを示すコマンドウィンドウが表示されます。
Windowsタスクスケジューラでタスクを作成する
最後に、Windowsタスクスケジューラを使用してバッチスクリプトをスケジュールします。おそらく、毎日または毎週月曜日の午前3時にバックアップをスケジュールする必要があります。
ステップ1 :タスクスケジューラプログラムを起動する
ステップ2 :メニューから[アクション>タスクの作成]をクリックします
ステップ3 :タスクの名前、トリガー、アクション、および条件を次のように設定します:
ステップ4 :タスクが正しく作成されているかどうかを確認します。これを行うには、左側のパネルから[タスクスケジューラライブラリ]ノードをクリックし、中央のパネルにタスクのリストを表示する必要があります。
ステップ5 :スクリプトをテストするには、タスクを右クリックして[実行]を選択します。 「。
タスクのバックアップを取りたい場合は、タスクを右クリックしてエクスポートを選択します。 。