Tự động đồng bộ hóa thư mục FTP để tải lên thông qua dòng lệnh [đã đóng]


0

Tôi đang phát triển một trang web và tôi có quyền truy cập FTP để tải các tệp cục bộ lên một thư mục trên trang web thông qua FTP. Tôi muốn tự động hóa quá trình triển khai này càng nhiều càng tốt bằng cách sử dụng dòng lệnh.

Có một các cửa sổ tiện ích dòng lệnh mà tôi có thể sử dụng để giúp tôi tự động hóa thêm quá trình đồng bộ hóa thư mục cục bộ với thư mục từ xa qua FTP với tác vụ này?


Bạn có thể viết một PowerShell kịch bản để làm điều này. Ứng dụng khách FTP tiêu chuẩn, vượt trội trên Windows, luôn là IE. Nếu bạn muốn chức năng bổ sung thì điều đó cung cấp cho bạn sẽ phải đi với tùy chọn của bên thứ ba.
Ramhound

Câu trả lời:


2

Tự động đồng bộ hóa thư mục FTP với WinSCP

Tôi đã hoàn thành thành công những nhiệm vụ như vậy bằng cách sử dụng tuyệt vời và tuyệt vời WinSCP sản phẩm. Tôi đã cung cấp cho bạn một mẫu Tập lệnh hàng loạt cũng như để giúp thiết lập một nhiệm vụ như vậy cho tự động hóa và do đó cung cấp cho bạn một câu trả lời khá đầy đủ và đầy đủ để giúp đáp ứng nhu cầu của bạn.

Về cơ bản bạn sẽ:

  1. Xác định kết nối FTP trong WinSCP GUI
  2. Lưu kết nối FTP đã xác định và đặt tên cho biết những gì nó liên quan
  3. Sử dụng tên kết nối FTP trong tập lệnh để mở kết nối cho các lệnh FTP. Xem phần Tập lệnh hàng loạt phần

    enter image description here
    enter image description here
    enter image description here


Tập lệnh hàng loạt

Trong tập lệnh bó bên dưới, bạn sẽ muốn chắc chắn các biến này được đặt với các giá trị chính xác: localdir, remotedir, winscploginlogfile vì vậy hãy chắc chắn rằng những tệp này được đặt để trỏ đến các thư mục chính xác, kết nối FTP do WinSCP xác định và tệp nhật ký, phần còn lại sẽ hoạt động như bình thường.

@ECHO ON

:SetFileLogVariables
SET localdir=C:\dev\site123
SET remotedir="dev\site123"
SET logfile=C:\logs\FTP_dev_site123_sync.log

:SetPrgVariables
SET prgwinscp="C:\Program Files\WinSCP3\WinSCP.com"
SET winscplogin="DevSiteSync"
SET winscpfile=%temp%\~tmpWinSCPFTPSyncT_%~N0.txt
IF EXIST "%winscpfile%" DEL /Q /F "%winscpfile%"

:SetWinSCPSyncCommand
SET ftpcmd=synchronize remote "%localdir%\"

:ftpout
ECHO.                                                                   >> %logfile%
ECHO ***************************  FTP OUT  ***************************  >> %logfile%
ECHO Synchronizing files to %winscplogin% server  on %date% at %time%   >> %logfile%

ECHO option batch on          >> %winscpfile%
ECHO option confirm off       >> %winscpfile%
ECHO option transfer binary   >> %winscpfile%
ECHO open %winscplogin%       >> %winscpfile%
ECHO cd %remotedir%           >> %winscpfile%
ECHO %ftpcmd%                 >> %winscpfile%
ECHO close                    >> %winscpfile%
ECHO exit                     >> %winscpfile%

ECHO %winscpfile%                                >> %logfile%
TYPE %winscpfile%                                >> %logfile%
ECHO ------------------------------------------- >> %logfile%
%prgwinscp% /script=%winscpfile%                 >> %logfile%
ECHO ------------------------------------------- >> %logfile%
IF EXIST "%winscpfile%" DEL /Q /F "%winscpfile%"
ECHO Transmission complete on %date% at %time%   >> %logfile%
EXIT

Cấu hình kết nối WinSCP Lưu ý

Bạn có thể sẽ muốn nói với kết nối FTP được xác định WinSCP tới   KHÔNG PHẢI Nhớ thư mục cuối cùng được sử dụng vì kịch bản sẽ đi đến   các thư mục rõ ràng.

Bạn hoàn thành việc này bằng cách tô sáng tên kết nối FTP đã xác định   trong GUI WinSCP và sau đó chọn Chỉnh sửa | Nâng cao | Thư mục | bỏ chọn hộp bên cạnh Nhớ thư mục cuối cùng được sử dụng | được | Tiết kiệm .

enter image description here

enter image description here

enter image description here


đồng bộ hóa

Cú pháp

synchronize local|remote|both [ <local directory> [ <remote directory> ] ]

Nhận xét

Khi tham số đầu tiên là local, thay đổi từ thư mục từ xa là   áp dụng cho thư mục địa phương. Khi tham số đầu tiên là remote,   thay đổi từ thư mục cục bộ được áp dụng cho thư mục từ xa.   Khi tham số đầu tiên là both, cả thư mục địa phương và từ xa   có thể được sửa đổi.

Khi thư mục không được chỉ định, thư mục làm việc hiện tại là   đồng bộ.

Chú thích: Ghi đè xác nhận luôn luôn tắt cho lệnh.

Công tắc:

enter image description here

nguồn


Tài nguyên khác


1

Tôi đã sử dụng thành công đáng kính và miễn phí Khách hàng NcFTP .

Ví dụ sử dụng:

ncftpput -u user -p password ftp.server.com /server-folder file-path

0

Một đơn giản bash ftp tập lệnh có thể chuyển qua một tập tin:

#!/bin/sh
HOST='hostname'
USER='username'
PASSWD='password'
FILE='test.txt'

ftp $HOST <<END_SCRIPT
USER $USER
PASS $PASSWD
passive
ls
cd test
put $FILE
quit
END_SCRIPT
exit 0

Dễ dàng hơn việc viết tập lệnh của riêng bạn để lặp qua các tệp và thư mục, hãy sử dụng lsftp:

#!/bin/bash
HOST='hostname'
USER='username'
PASS='password'
TARGETFOLDER='/test'
SOURCEFOLDER='/mnt/c/test'

lftp -f "
set ssl:verify-certificate no
open $HOST
user $USER $PASS
mirror --reverse --delete --verbose $SOURCEFOLDER $TARGETFOLDER
bye
"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.