简单记录下折腾从linux系统自动定时传输文件到window系统的过程
window系统准备
开启openssl服务
window搜索功能搜索可选功能
-添加可选功能
选择OpenSSH服务器
然后添加,等待添加完成即可
防火墙放通22端口
打开CMD
或powershell
执行以下命令即可
1 | New-NetFirewallRule -Name "OpenSSH Server (sshd)" -DisplayName "OpenSSH Server (sshd)" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 |
其他
重启sshd
1 | Restart-Service sshd |
开机启动
1 | Set-Service -Name sshd -StartupType 'Automatic' |
日志位置
1 | C:\ProgramData\ssh\logs\ |
linux系统准备
安装scp
默认系统自带,如果没有请执行
1 | # ubuntu/debian |
安装expect
1 | # ubuntu/debian |
传输初始化(scp命令)
1 | scp -P 接收服务器的SSH端口 -r 发送文件目录路径 登录账号(如root)@接收服务器ip或域名:接收服务器存储路径 |
按提示输入yes
和接收服务器密码信息
脚本
该脚本能实现自动填充密码然后发送文件功能
1 | // scp_expect.sh |
保存后执行chmod +x scp_expect.sh
,然后执行一次是否正常,连接新机子需手动跑一遍scp跳过验证才可正确执行脚本
定时执行
执行crontab -e
后填入
1 | 0 2 1 * * /root/scp_expect.sh >> /root/scp_cert_expect.sh.log 2>&1 |
每周一2点会执行该脚本,脚本路径和日志路径自行修改