🤩[WINSCP] winscp bị tắt đột ngột giờ tôi muốn tải lại những file còn thiếu.

Rất hay – đây là tình huống khá phổ biến khi dùng WinSCP để tải dữ liệu lớn hoặc thư mục nhiều file. ✅ Bạn hoàn toàn có thể tải lại mà không bị tải trùng, chỉ cần bật tính năng resume / synchronization.


🧭 Cách 1: Dùng “Keep remote directory up to date” (đồng bộ thư mục)

Nếu bạn đang muốn đồng bộ toàn bộ thư mục từ server về máy:

  1. Mở WinSCP → kết nối lại tới server.

  2. Truy cập thư mục nguồn (remote)đích (local).

  3. Vào menu: Commands → Synchronize... (hoặc nhấn Ctrl + S).

  4. Chọn:

    • Direction: Remote → Local

    • Mode: Synchronize files

    • Tích Preview changes để xem trước.

    • Tích Use timestamps để chỉ tải file mới hoặc khác thời gian.

    • Tích Transfer newer only (nếu bạn chỉ muốn tải file mới hơn).

  5. Nhấn OK.

  6. WinSCP sẽ liệt kê những file nào khác hoặc thiếu → bạn chỉ cần nhấn Synchronize để tải phần còn thiếu.

🟢 Kết quả: Chỉ những file chưa tải hoặc bị gián đoạn mới được tải thêm.


🧭 Cách 2: Dùng resume tải lại nếu đang dở file lớn

Nếu trước đó bạn đang tải dở một file lớn (ví dụ .zip, .tar.gz…), WinSCP có thể resume:

  1. Mở lại WinSCP, kết nối server.

  2. Bắt đầu tải lại cùng file vào đúng thư mục cũ (file cùng tên).

  3. WinSCP sẽ hỏi:

    “The file already exists — Resume, Overwrite, Skip?” → chọn Resume. Nó sẽ tiếp tục tải phần còn thiếu, không tải lại từ đầu.


⚙️ Gợi ý cấu hình sẵn để tránh lần sau

Vào: Options → Preferences → Transfer → Resume/Transfer to temporary filename → chọn:

  • Enable transfer resume/transfer to temporary filename for: All files

  • Use timestamps (để đồng bộ chính xác)


Nếu bạn cho tôi biết bạn đang tải thư mục hay file đơn lẻ, mình có thể hướng dẫn cụ thể hơn (ví dụ: dòng lệnh winscp.com hoặc script .bat để chỉ tải phần thiếu). Bạn muốn mình hướng dẫn theo cách giao diện WinSCP hay script tự động?

Bạn đã nói:

script tự động

ChatGPT đã nói:

Tốt lắm 👍 — dùng script WinSCP tự động là cách an toàn nhất để tải lại các file bị gián đoạn hoặc thiếu mà không tải lại toàn bộ. Mình sẽ hướng dẫn bạn tạo script đồng bộ tự động chỉ tải file còn thiếu (và có thể resume nếu file bị gián đoạn).


🧰 1️⃣ Cấu trúc cơ bản của script WinSCP

Tạo file ví dụ: sync-download.bat (Windows) hoặc sync-download.cmd

Nội dung như sau:

@echo off
winscp.com /script=sync-download.txt /log=sync.log
pause

🧾 2️⃣ Tạo file script thật (sync-download.txt)

Dán nội dung này vào sync-download.txt (đặt cùng thư mục với file .bat):

# Kết nối đến server (thay thông tin của bạn)
open sftp://username:password@host -hostkey="ssh-rsa 2048 xx:xx:xx:..."

# Chọn thư mục từ server (remote) và máy local
lcd D:\Backup\ServerData
cd /home/username/data

# Đồng bộ từ remote → local
synchronize local -filemask="*" -delete -resume -preservetime

# Thoát sau khi xong
exit

⚙️ 3️⃣ Giải thích các tham số

Tham số
Ý nghĩa

synchronize local

Tải file từ remote → local (chỉ file mới/thiếu)

-filemask="*"

Lọc tất cả các file

-delete

(Tùy chọn) xóa file local không còn trên server

-resume

Tiếp tục tải file bị gián đoạn

-preservetime

Giữ nguyên thời gian sửa file để lần sau dễ so sánh

-hostkey="..."

Khóa bảo mật SSH để xác thực server (rất nên dùng)


💡 4️⃣ Nếu bạn muốn chạy script định kỳ (tự động)

Bạn có thể thêm vào Task Scheduler (Windows) → đặt chạy sync-download.bat theo giờ cố định (mỗi 6 tiếng hoặc mỗi ngày).


🧩 5️⃣ Ví dụ thực tế

Nếu bạn tải từ một server SFTP có IP 123.45.67.89, username là root, thư mục /var/www/html/uploads, về thư mục local E:\Backup\uploads, thì file script sẽ như sau:

open sftp://root:yourpassword@123.45.67.89
lcd E:\Backup\uploads
cd /var/www/html/uploads
synchronize local -filemask="*" -resume -preservetime
exit

🚀 Chạy script

Chạy bằng dòng lệnh hoặc click đôi vào file .bat:

sync-download.bat

WinSCP sẽ tự động:

  • So sánh nội dung giữa server và local

  • Chỉ tải file mới hoặc thiếu

  • Tiếp tục tải những file bị gián đoạn

  • Ghi log chi tiết trong sync.log


Bạn có muốn mình giúp viết luôn script đầy đủ (bao gồm log chi tiết, tự reconnect, bỏ qua lỗi tạm thời) cho FTP hay SFTP không? Chỉ cần bạn gửi mình:

  • Giao thức: (FTP / SFTP / SCP)

  • Host (ví dụ: example.com hoặc IP)

  • Thư mục remote và local bạn muốn đồng bộ.

Last updated

Was this helpful?