Tự động gửi file đến ftp server – bash shell upload multiple files via ftp

Linux

Sau đây mình sẽ hướng dẫn các bạn tạo 1 bash shell có chức năng tự động gửi file lên ftp serer và xóa file đã gửi.

Tạo file upload.sh

vi /home/tmpdir/upload.sh

Nội dụng file:

#!/bin/bash
HOST=192.168.1.169
USER=admin
[email protected]

mv /home/dir/*.jpg /home/tmpdir/
cd /home/tmpdir/
ftp -inv $HOST <<EOF
user $USER $PASSWORD
cd /home/dest_dir/
mput *.jpg
bye
EOF
rm -rf /home/tmpdir/*.jpg

Chú thích

HOST=192.168.1.169 FTP server IP
USER=ftpadmin Ftp user
[email protected] Password
mv /home/dir/*.jpg /home/tmpdir/ Di chuyển file cần upload đến thư mục tạm
cd /home/tmpdir/ Chuyển đến thư mục tạm chứa file cần upload
ftp -inv $HOST <<EOF
user $USER $PASSWORD
Đăng nhập FTP Server
cd /home/dest_dir/ Chuyến đến thư mục đích chứa file
mput *.jpg upload toàn bộ file ảnh đuôi jpg
rm -rf /home/tmpdir/*.jpg Xóa toàn bộ file đã upload trong thư mục tạm

Việc tạo thư mục tạm để tránh việc upload lại những file đã upload và xóa nhầm file chưa đc upload.

Lập lịch

Nếu bạn muốn lập lịch tự động có thể cấu hình crontab làm việc này. Để chỉnh sửa crontab dùng lệnh:

crontab -e

Sau đó thêm dòng sau:

*/1 10-11 * * */home/tmpdir/upload.sh >/dev/null 2>&1

Ví dụ trên là từ 10h – 11h mỗi phút 1 lần chạy file upload.sh


Chúc các bạn thành công.

Share: