【发布时间】:2018-10-03 16:38:05
【问题描述】:
我想在重启或关机前上传文件。
1.从我的vps到vps
upload.service 的设置
vim /etc/systemd/system/upload.service
[Unit]
Description=upload files into my vps
Before=shutdown.target reboot.target
Requires=network-online.target
After=network.target
[Service]
ExecStart=/bin/true
ExecStop=/bin/bash /home/upload.sh
[Install]
WantedBy=multi-user.target
upload.sh 脚本
vim /home/upload.sh
/usr/bin/scp -P 22 -i /home/.ssh/id_rsa /home/wp.bak root@remote_ip:/home
是时候测试一下了。
systemctl enable upload
reboot
已验证 wp.bak 可以在重启时从我的 vps1 上传到 vps2。
2.从家里的电脑到vps
我家的电脑和vps之间已经建立了ssh凭证。
与 case1 相同的设置。
journalctl -u upload
Started upload files into my vps.
ssh: connect to host xxxxxxxxxx port 22: Network is unreachable
lost connection
After=network.target 写成After=network.target ssh.service 是没有用的。
按 nbari 说的做。
sudo vim /etc/systemd/system/upload.service
[Unit]
Description=upload files into my vps
Before=shutdown.target reboot.target
After=network.target network-online.target
Requires=network-online.target network.target
[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=/bin/bash /home/debian9/upload.sh
[Install]
WantedBy=multi-user.target
sudo vim /home/upload.sh
/usr/bin/scp -P 22 -i /home/.ssh/id_rsa /home/wp.bak root@remote_ip:/home
sudo systemctl daemon-reload
sudo systemctl enable upload
重启电脑。
sudo journalctl -u upload
-- Logs begin at Fri 2018-04-27 10:46:34 HKT, end at Fri 2018-04-27 11:00:23 HKT
Apr 27 10:46:51 hwy systemd[1]: Started upload files into my vps.
上传服务好像没问题。
问题 1: 为什么
ExecStart=/bin/true
ExecStop=/bin/bash /home/upload.sh
在我的 vps 上运行良好?
为什么
RemainAfterExit=true
ExecStop=/bin/bash /home/upload.sh
可以代替
ExecStart=/bin/true
ExecStop=/bin/bash /home/upload.sh
在我的家用电脑上?
问题2:
wp.bak 是一个超过 3G 的大文件。time /usr/bin/scp -P 22 -i /home/.ssh/id_rsa /home/wp.bak root@remote_ip:/home 花了我 3000 秒(50 分钟,差不多一小时)或更多。
获取我电脑中的文件大小
ls -al /home/wp.bak
-rw-r--r-- 1 debian9 debian9 3977379840 Apr 22 12:23 /home/wp.bak
在我的 vps 中获取上传的文件大小。
ssh root@vps_ip
ls -al /home/wp.bak
-rw-r--r-- 1 root root 63045632 Apr 27 02:46 /home/wp.bak
为什么只有 1.6%,一小部分上传了?
63045632/3977379840=0.0158
我的仆人——家里的电脑骗了我。
请详细说明。
【问题讨论】: