Chào các cụ. Chả là e có 1 site download, vừa rồi bị report đến server storage đã phải chuyển nhà 1 lần rồi. Nay e muốn tạo 1 server backup cho con storage kia. Yêu cầu là khi nào upload file lên server storage chính thì sẽ đồng thời sync sang server backup Trên server backup e viết lệnh trong PHP ntn: $out_put = shell_exec('rsync -avzhe ssh root@storage_server_id:/var/www/html/domain/uploads/filename /var/www/html/domain/uploads/ 2>&1'); Khi chạy nó báo lỗi: Host key verification failed. rsync: connection unexpectedly closed (0 bytes received so far) [Receiver] rsync error: unexplained error (code 255) at io.c(235) [Receiver=3.1.2] e đã tạo ssh-keygen trên server backup thành công. Bằng chứng là nếu e chạy trực tiếp lệnh: rsync -avzhe ssh root@storage_server_id:/var/www/html/domain/uploads/filename /var/www/html/domain/uploads/ trên server backup thì nó chạy thành công và không yêu cầu mật khẩu của server storage chính Các cụ có kinh nghiệm vụ này hướng dẫn e phát
E chưa chạy crontab với cả cũng không muốn chạy crontab cho cái này. Nhưng e có chạy lệnh trực tiếp trên vps thì chạy đc. nhưng khi chạy qua php bằng shell_exec thì không chạy đc
bác phải shell_exec('cd /root/') trước lệnh rsync php kia nữa, vì khi bác chạy trên ssh terminal thì lệnh đang ở /root/ hoặc cd /thư_mục_bác_tạo_file_keygen
Ko phải bác. Chạy trực tiếp trên VPS e cũng chạy ở thư mục web chứ có chạy ở root đâu --- Double Post Merged, Jan 8, 2022, Original Post Date: Jan 8, 2022 --- Thế h làm cách để gọi lệnh rsync từ PHP không bác
bác thử crontab đi, hoặc tống nó vào file .sh rồi chạy, hoặc tạo systemd daemon cho nó chạy như service
Lúc chạy trực tiếp trên VPS thì e chạy bằng user root luôn. Còn lúc thực thi qua PHP thì không biết nó dùng user nào =))
cụ thể đc không cụ. E sửa lại thành rsync -i /root/.ssh/id-rsa.pub -avzhe ssh root@xxxx:/var/www/html/domain/uploads/files.exe /var/www/html/domain/uploads/ 2>&1 thì nó báo "Unexpected remote arg..."