@echo off
setlocal enabledelayedexpansion
set FTP_HOST=192.168.1.1 21
set FTP_USER=back
set FTP_PASS=back123
set "searchPath=F:\BACKUP\WindowsImageBackup"
set "vhdFiles="
for /r "%searchPath%" %%v in (*.VHD) do (
echo File found: "%%v"
::FTP Create
echo open %FTP_HOST%> ftp_commands.txt
echo %FTP_USER%>> ftp_commands.txt
echo %FTP_PASS%>> ftp_commands.txt
echo binary>> ftp_commands.txt
echo put "%%v">> ftp_commands.txt
echo quit>> ftp_commands.txt
ftp -is:ftp_commands.txt
)
::pause
分类目录归档:None
windows 运维之 FTP
windows server 中默认防火墙是关闭端口的,若使用服务器去连接FTP服务器,仅仅开放20 21是不够的,需要在防火墙开启入站和出站规则
将该程序的:c:\windows\system32\ftp.exe
全部端口打开
FPT运行文件ftp.txt
open 192.168.1.112
mpy
mpy123456
binary
lcd E:\backup_save
put db.bak
quit
CMD中执行
ftp -is:ftp.txt
即可
创建BAT文件
@echo off
ftp -is:ftp.txt
大坑
搜索引擎 网络上 如下代码
set FTP_HOST=192.168.1.100 21
set FTP_USER=az
set FTP_PASS=az123
echo open %FTP_HOST%> ftp_commands.txt
echo %FTP_USER%>> ftp_commands.txt
echo %FTP_PASS%>> ftp_commands.txt
echo binary>> ftp_commands.txt
echo mput !vhdFiles!>> ftp_commands.txt
echo quit>> ftp_commands.txt
ftp -is:ftp_commands.txt
上述代码为正确代码,windows的BAT中空格会被写入 即在>> 和>前面应该紧贴需要输入的内容,绝了
echo 123>a.txt
echo 123 >a.txt
上述两句代码生成的a.txt 不相同 第二个比第一个多了一个空格【ascii 为32】
FTP 命令 补充
mput上传多文件
put单文件
CRONTAB log
Jun 15 00:00:01 zgs CRON[21808]: (root) CMD (sh /home/zgs/www.sh )
Jun 15 00:04:21 zgs CRON[21807]: (CRON) info (No MTA installed, discarding output)
crontab 定时任务 自动化运维
crontab -e 进入变价
分 时 天(不可以为0) 月(不可以为0) 周(0 7表示周日) sh *.sh
每2分钟执行一次
*/2 * * * *
每分钟执行一次
* * * * *
1:00 执行一次
0 1 * * *
1号 每分钟执行一次
* * 1 * *
1号 1:00执行一次
0 1 1 * *
每周1 1:00执行一次
0 1 * * 1
expect 自动化运维 SCP自动输入密码 FTP
apt install except
范例 upscp.exp 文件
set timeout 60
spawn scp -r ./release/ root@127.0.0.1:/opt/
expect “*password:”
send “123456\n”
expect eof
解释 解释 解释 解释 解释
设置超时未60秒,默认10秒 若使用SCP FTP传输 10秒可能无法将全部信息发送 建议更具文件大小设置
写完之后 将文件保存为 upscp.exp,每个expect脚本spawn只能使用一次,相当于监控该命令
添加写入权限 chmod +x upscp.exp
执行 ./upscp.exp 即可
可以先写一个shell脚本用于操作备份(back.sh),最后在脚本中加入exp脚本用于传输操作
./upscp.exp
#!/usr/bin/expect -f
set timeout 60
spawn scp -r ./release/ root@127.0.0.1:/opt/
expect "*password:"
send "123456\n"
expect eof
spawn ftp ftp.test.com
expect "Name"
send "user\r"
expect "Password:"
send "123456\r"
interact