WinSCP 스크립트 및 실행
17490 단어 winscp
정리가 잘 안 되지만 필기 정도예요.
WinSCP 스크립트 예
WinSCP 스크립트 실행 예제(계정 간 공통 설정 사용)
# バッチモードに設定し、確認/問い合わせを無効にする
option batch on
# ファイル上書きの確認などを無効にする
option confirm off
# サーバーに接続
open user@example.com
# なおパスワードを指定して接続するには次のようにする
# open user:password@example.com
# リモートディレクトリを変更
cd /home/user
# バイナリモードに変更
option transfer binary
# ファイルをd:\にダウンロード(最後の\が省けません)
get examplefile.txt d:\
# 切断
close
# 異なるユーザーでサーバーに接続
open user2@example.com
# リモートディレクトリを変更
cd /home/user2
# ファイルをアップロード
put d:\examplefile.txt
# 切断
close
# 終了
exit
이 스크립트를 "example.txt"에 저장한 다음 다음과 같이 실행합니다.winscp.exe/console/script=example.txt
또한 "/command"옵션을 사용하여 명령줄에 같은 처리를 지정합니다.
winscp.exe/console/command "option batch on""open [email protected] ""get examplefile.txt d:\""exit"
"오픈"명령 대신 명령줄로 연결 대상 서버를 지정할 수도 있습니다.이 경우 서버에 연결한 다음 스크립트를 실행합니다.
winscp.exe/console/script=example.txt [email protected]
이것은 수동 두드리기 명령의 예이다.
WinSCP 스크립트 시작: 명령 및 배치 파일과의 공동 작업을 통해 2페이지 자동 처리
https://osdn.jp/magazine/10/04/20/1033216/2
파일 다운로드
winscp> open taro@172.17.4.69 ←172.17.4.69に「taro」というユーザーで接続
サーバを探索中・・・
サーバに接続しています・・・
認証しています・・・
ユーザ名"taro" を使用中
キーボード対話式認証を使用。
Password: ←パスワードを入力
認証されました
セッションを開始しています・・・
リモートディレクトリを読み込み中・・・
セッションを開始しました
アクティブセッション: [1] taro@172.17.4.69 セッション番号「1」としてセッションを開始
winscp> cd public_html ←「public_html」ディレクトリに移動
/Users/taro/public_html
winscp> lcd "%HOME%" ←ローカルのカレントディレクトリをホームディレクトリに変更
C:\Users\taro
winscp> ls ←リモート側のファイル一覧を表示
drwxr-xr-x 34 taro taro 1156 Apr 14 17:24:12 2010 .
drwxr-xr-x 360 taro taro 12240 Apr 14 17:23:54 2010 ..
-rw-r--r-- 1 taro taro 2886 Apr 14 17:24:12 2010 20061130-115028.html
-rw-r--r-- 1 taro taro 3712 Apr 14 17:24:12 2010 20061201-082224.html
:
(省略)
:
-rw-r--r-- 1 taro taro 25223 Apr 14 17:24:12 2010 index.html
winscp> get *.html ←拡張子が「.html」のすべてのファイルをダウンロードする
20061130-115028.html | 2 KiB | 0.0 KiB/s | ascii | 100%
20061201-082224.html | 3 KiB | 0.0 KiB/s | ascii | 100%
:
(省略)
:
index.html | 24 KiB | 948.2 KiB/s | ascii | 100%
winscp> exit ←WinSCPを終了する
명령줄에서 직접 실행하는 예@echo off
REM -------------------------------------------------
REM ログパスを定義する
REM -------------------------------------------------
REM コンソールに出力されたメインのログを保存する(実行結果を確認時に使用)
@set logfile_main=C:\TEST2\logfile_main.log
REM WinSCPが自動的出力された詳細のログを保存する
@set logfile_detail=C:\TEST2\logfile_detail.log
REM -------------------------------------------------
REM コマンドラインで実行するときの共通の部分を定義する
REM [email protected]の部分は「[email protected]」という名前で保存しておいたセッションです。
REM 事前にWinSCP.exeにてパスワード付きで保存すればOK、下記の(図1)を参照くだい。
REM -------------------------------------------------
@set Program="C:\Program Files (x86)\WinSCP\WinSCP.com" aimori2@192.168.1.2 /log=%logfile_detail% /command
REM -------------------------------------------------
REM 実際にコマンドラインで実行するコマンドを定義する
REM 下記の同期コマンドは、サーバー上のデータをローカルの該当フォルダに同期する場面に使えるコマンドです。
REM (方向はremoteサーバー->local ファイルが同じ場合ローカルを更新しない)
REM synchronizeコマンドの後ろにいろんなパラメータを指定できますが、間違えるとサーバー上のものが消えることがありますので、理解して使用する必要があるコマンドです!!!
REM -------------------------------------------------
@set command_synchronize_1= "synchronize local -transfer=binary C:\TEST2\gggg\cmb\data\recivemaster /gggg/cmb/data/recivemaster"
@set command_synchronize_2= "synchronize local -transfer=binary C:\TEST2\gggg\cmb\data\recivemaster2 /gggg/cmb/data/recivemaster2"
cls
echo ---------------------------------
echo START
echo ---------------------------------
@echo --------------------------------- >> %logfile_main%
REM 開始時刻を出力
@echo %date% %time% >> %logfile_main%
REM 順次にコマンドラインにてコマンドを実行する
%Program% %command_synchronize_1% "close" "exit" >> %logfile_main%
%Program% %command_synchronize_2% "close" "exit" >> %logfile_main%
REM 終了時刻を出力
@echo %date% %time% >> %logfile_main%
echo ---------------------------------
echo ScriptEnd
echo ---------------------------------
REM pause
exit
[email protected] WinSCP에는 자주 사용하는 서버와 로그인 이름 등을 세션으로 저장하는 기능이 있습니다.저장된 세션 이름을 winscp 매개 변수로 사용합니다.com(winscp.exe)을 실행하면 WinSCP를 시작하고 지정한 세션을 즉시 호출할 수 있습니다.
(그림1)
bat에서 스크립트를 출력한 후,bat에서 스크립트를 실행하는 예시
@REM
@echo off
REM -------------------------------------------------
REM ログパスを定義する
REM -------------------------------------------------
REM コンソールに出力されたメインのログを保存する(実行結果を確認時に使用)
@set logfile_main=C:\TEST2\logfile_main.log
REM WinSCPが自動的出力された詳細のログを保存する
@set logfile_detail=C:\TEST2\logfile_detail.log
REM 実行対象ファイルを定義
@set WinSCP_scpscript=C:\TEST2\SCPcom.scp
REM 保存済みのセッションにて接続する
@set WinSCP_com="C:\Program Files (x86)\WinSCP\WinSCP.com" aimori2@192.168.1.2
cls
echo ---------------------------------
echo START
echo ---------------------------------
@echo ------------------------------------------------------------------ >> %logfile_main%
REM 開始時刻を出力
@echo %date% %time% >> %logfile_main%
REM # バッチモードに設定し、確認/問い合わせを無効にする
echo option batch on > %WinSCP_scpscript%
REM # ファイル上書きの確認などを無効にする
echo option confirm off >> %WinSCP_scpscript%
REM # バイナリモードに変更
echo option transfer binary >> %WinSCP_scpscript%
REM ------------------------------------------------------------------
REM ここに順番に実際に同期をしたいコマンドを追記する
REM ------------------------------------------------------------------
echo synchronize local -transfer=binary "C:\TEST2\gggg\cmb\data\recivemaster" /gggg/cmb/data/recivemaster >> %WinSCP_scpscript%
echo synchronize local -transfer=binary "C:\TEST2\gggg\cmb\data\recivemaster2" /gggg/cmb/data/recivemaster2 >> %WinSCP_scpscript%
echo synchronize local -transfer=binary "C:\TESTTE ST33" /gggg/cmb/data/recivemaster2 >> %WinSCP_scpscript%
REM ------------------------------------------------------------------
REM #リモートからローカルにファイルをダウンロード
REM ------------------------------------------------------------------
echo get /gggg/cmb/data/recivemaster/XXXAD001_1.txt C:\TEST33\XXXAD001_1_%%TIMESTAMP%%.txt >> %WinSCP_scpscript%
REM ------------------------------------------------------------------
REM # セッションを閉じる
REM ------------------------------------------------------------------
echo close >> %WinSCP_scpscript%
REM ------------------------------------------------------------------
REM # すべてのセッションを閉じプログラムを終了する
REM ------------------------------------------------------------------
echo exit >> %WinSCP_scpscript%
REM ------------------------------------------------------------------
REM スクリプトを実行する
REM ------------------------------------------------------------------
@REM "C:\Program Files\WinSCP\WinSCP.com" /ini="C:\Program Files\WinSCP\WinSCP.ini" [WinSCPName] /console /script=.\%WinSCP_scpscript%
@REM "C:\Program Files (x86)\WinSCP\WinSCP.com" /console /log=C:\TEST2\SCPcom.log /script=C:\TEST2\%WinSCP_scpscript% >> C:\TEST2\1.txt
%WinSCP_com% /console /log=%logfile_detail% /script=%WinSCP_scpscript% >> %logfile_main%
REM 終了時刻を出力
@echo %date% %time% >> %logfile_main%
echo ---------------------------------
echo ScriptEnd
echo ---------------------------------
exit
폴더의 용량이 큰 경우 아래를 참조하여 자동으로 파일을 압축합니다.Lhaplus를 사용하여 DOS 명령에서 압축합니다.
Windows 명령줄에서 파일을 압축하는 방법 노트
무료 소프트웨어 Lhaplus를 사용하십시오.
>"C:\Program Files\Lhaplus\Lhaplus.exe" /c:zip /o:C:\ "C:\Documents and Settings\user\デスクトップ\test"
/:c 圧縮形式の指定
/:o 出力先の指定
上のコマンドを実行すると、
"C:\Documents and Settings\user\デスクトップ\test" 配下のファイルを、
zip 形式で圧縮し、C:\test.zip で出力される。
Reference
이 문제에 관하여(WinSCP 스크립트 및 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/aimoriu/items/a36b231d3fd26b222452텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)