网络
设置静态IP
文件 说明 IP(192.168.3.110).bat 配置以太网为静态IP(192.168.3.110)
@echo off
SET CONNECTION_NAME="以太网"
SET TARGET_IP=192. 168. 3. 100
SET TARGET_MASK=255. 255. 255. 0
SET TARGET_GW=192. 168. 3. 254
SET MAIN_DNS=223. 5. 5. 5
echo 设置% CONNECTION_NAME%
echo IP : % TARGET_IP%
echo MASK : % TARGET_MASK%
echo GATEWAY : % TARGET_GW%
echo DNS : % MAIN_DNS%
netsh int ip set address name=% CONNECTION_NAME% source=static addr=% TARGET_IP% mask=% TARGET_MASK% gateway=% TARGET_GW% gwmetric=1
netsh int ip set dns name=% CONNECTION_NAME% source=static addr=% MAIN_DNS%
ipconfig/ all
echo 请等待3秒
choice / t 1 / d y / n > NUL
echo 2
timeout 1 > NUL
echo 1
start ping % TARGET_GW% - t
start ping % MAIN_DNS% - t
PAUSE
设置DHCP
文件 说明 DHCP.bat 配置以太网为DHCP方式获取动态IP
SET CONNECTION_NAME="以太网"
SET MAIN_DNS=223. 5. 5. 5
netsh int ip set address name=% CONNECTION_NAME% source=dhcp
netsh int ip set dns name=% CONNECTION_NAME% source=static addr=% MAIN_DNS% register=primary
ipconfig/ all
ping % MAIN_DNS% - t
pause
网络检测
文件 说明 check_network.bat 每五秒ping一下dns和网关
@echo off
cls
SET LOG_FILE=% date:~0, 4%- % date:~5, 2%- % date:~8, 2% . log
:check_network
echo 检查网络@% date:~0, 4%- % date:~5, 2%- % date:~8, 2% % time:~0, 2% :% time:~3, 2% :% time:~6, 2%
echo % date:~0, 4%- % date:~5, 2%- % date:~8, 2% % time:~0, 2% :% time:~3, 2% :% time:~6, 2% >> % LOG_FILE%
ping 223. 5. 5. 5 >> % LOG_FILE%
ping 192. 168. 1. 1 >> % LOG_FILE%
timeout / t 5
goto check_network
端口转发
将192.168.12.10端口8080转发到本机网卡地址192.168.1.15端口81上 也就是192.168.1.*的网络设备,可以通过192.168.1.15:81来访问192.168.12.10:8080的服务
netsh interface portproxy add v4tov4 listenaddress=192. 168. 1. 15 listenport81 connectaddress=192. 168. 12. 10 connectport=8080
网络重置修复
:: 解决Win10企业版下同一域名内外网DNS解析问题
ipconfig /flushdns
ipconfig /registerdns
ipconfig /release
ipconfig /renew
netsh winsock reset
数据库
MySQL备份
文件 说明 backups.bat mysql的备份脚本,如果不需要重建原数据库,去掉多余参数即可
cd % ~dp0
@ECHO OFF
ECHO [INFO] INIT RUN PARAMS
SET DB_USER=root
SET DB_PASSWD=root
SET DB_NAMES=proj1 proj2
SET BACKUP_DIR=C:\dbbackup
SET TODAY=% date:~0, 4%- % date:~5, 2%- % date:~8, 2%
SET RESULT_FILE=% BACKUP_DIR% \% DB_USER% _% TODAY% . sql
SET MYSQL_BIN=C:\mysql- 5. 6. 24- winx64\bin
SET PATH=% MYSQL_BIN% ; % PATH%
ECHO [INFO] DB_USER : % DB_USER%
ECHO [INFO] DB_PASSWD : % DB_PASSWD%
ECHO [INFO] DB_NAMES : % DB_NAMES%
ECHO [INFO] BACKUP_DIR : % BACKUP_DIR%
ECHO [INFO] TODAY : % TODAY%
SET EXP_CMD=mysqldump -- user=% DB_USER% -- password=% DB_PASSWD% -- host=localhost -- port=3306 -- result- file=% RESULT_FILE% -- add-drop - database -- add-drop - table -- default- character- set =utf8 -- single- transaction=TRUE -- databases % DB_NAMES%
ECHO [INFO] CALL % EXP_CMD%
CALL % EXP_CMD%
PAUSE
SQLServer备份
文件 说明 backups.bat sqlserver的备份脚本,使用7zip最大压缩和minio的客户端,压缩后上传到指定服务目录
SET ZIP_BIN=C:\Program Files\7- Zip
SET MINIO_CLIENT_BIN=C:\dbbackup
SET TODAY=% date:~0, 4%- % date:~5, 2%- % date:~8, 2%
::if % TIME:~0, 2% leq 9 ( set NOW=0% TIME:~1, 1%% TIME:~3, 2%% TIME:~6, 2% ) else ( set NOW=% TIME:~0, 2%% TIME:~3, 2%% TIME:~6, 2% )
SET NOW=% time:~0, 2%% time:~3, 2%% time:~6, 2%
SET NOW=% NOW: =0%
SET PATH=% ZIP_BIN% ; % MINIO_CLIENT_BIN% ; % PATH%
SET LOG_FILE=% MINIO_CLIENT_BIN% \backup_% TODAY% . log
echo % TODAY% % NOW% 备份数据库[Proj1] > % LOG_FILE%
sqlcmd - S . - E - Q "BACKUP DATABASE [Proj1] TO DISK='C:\dbbackup\Proj1_%TODAY%.bak'" >> % LOG_FILE%
timeout / t 60
echo % TODAY% % time% 压缩数据库[Proj1] 备份文件 >> % LOG_FILE%
7z a - mx=9 c:\dbbackup\Proj1_% TODAY% . 7z c:\dbbackup\Proj1_% TODAY% . bak - sdel >> % LOG_FILE%
timeout / t 60
echo % TODAY% % time% 上传数据库[JSTWarehouse] 压缩文件>> % LOG_FILE%
mc cp c:\dbbackup\Proj1_% TODAY% . 7z dbbackup/ proj1/
echo % TODAY% % time% 备份数据库任务结束 >> % LOG_FILE%
pause
SQLServer备份v2
文件 说明 backups.bat 当前目录下sqlserver的备份文件,使用7zip最大压缩和minio的客户端,压缩后上传到指定服务目录
SET ZIP_BIN=C:\Program Files\7- Zip
SET MINIO_CLIENT_BIN=C:\dbbackup
SET TODAY=% date:~0, 4%- % date:~5, 2%- % date:~8, 2%
::if % TIME:~0, 2% leq 9 ( set NOW=0% TIME:~1, 1%% TIME:~3, 2%% TIME:~6, 2% ) else ( set NOW=% TIME:~0, 2%% TIME:~3, 2%% TIME:~6, 2% )
SET NOW=% time:~0, 2%% time:~3, 2%% time:~6, 2%
SET NOW=% NOW: =0%
SET PATH=% ZIP_BIN% ; % MINIO_CLIENT_BIN% ; % PATH%
SET LOG_FILE=% MINIO_CLIENT_BIN% \backup_% TODAY% . log
SET "FILE_DIR=%%~dpf"
echo % TODAY% % NOW% 备份数据库! FILE_DIR! > % LOG_FILE%
echo 进入备份目录! FILE_DIR!
cd / d ! FILE_DIR!
echo 遍历( 包含子目录) 下的. bak文件
for / r % % f in ( * . bak) do (
echo 所在的目录: ! FILE_DIR!
SET "FILE_PATH=%%f"
echo 完整的路径: ! FILE_PATH!
SET "FILE_NAME=%%~nf"
echo 简略文件名: ! FILE_NAME!
SET "FILE_EXT=%%~xf"
echo 文件后缀名: ! FILE_EXT!
SET "FILE_FULLNAME=%%~nxf"
echo 完整文件名: ! FILE_FULLNAME!
SET "FILE_PATH_NO_EXT=%%~dpnf"
echo 无后缀路径: ! FILE_PATH_NO_EXT!
SET "FILE_NAME=%%~nf"
echo 压缩数据库备份文件: ! FILE_NAME! >> % LOG_FILE%
7z a - mx=9 "%%~dpnf.7z" "%%f" - sdel >> % LOG_FILE%
timeout / t 60
echo % TODAY% % time% 上传数据库备份压缩文件: "!FILE_NAME!.7z" >> % LOG_FILE%
mc cp "%%~dpnf.7z" dbbackup/ proj1/
echo % TODAY% % time% 备份数据库备份文件(! FILE_NAME! )任务结束 >> % LOG_FILE%
timeout / t 60
)
pause
应用
nginx日志分割
@SHIFT
::设置nginx安装文件路径和当天时间变量
@ECHO OFF
SET ZIP_BIN=C:\Program Files\7- Zip
SET NGINX_HOME=C:\app\nginx- 1. 28. 0
SET NGINX_LOG_DIR=% NGINX_HOME% \logs
SET NGINX_LOG_FILE=% NGINX_LOG_DIR% \access. log
SET CUT_LOG_FILE=% NGINX_LOG_DIR% \log_file_cut. log
SET PATH=% ZIP_BIN% ; % PATH%
SET TODAY=% date:~0, 4%% date:~5, 2%% date:~8, 2%
::if % TIME:~0, 2% leq 9 ( set NOW=0% TIME:~1, 1%% TIME:~3, 2%% TIME:~6, 2% ) else ( set NOW=% TIME:~0, 2%% TIME:~3, 2%% TIME:~6, 2% )
SET NOW=% time:~0, 2%% time:~3, 2%% time:~6, 2%
SET NOW=% NOW: =0%
ECHO % TODAY% _% NOW% >> % CUT_LOG_FILE%
::判断nginx安装文件路径设置是否正确
:exist_nginx_dir
@ECHO OFF
IF EXIST % NGINX_HOME% (
CD % NGINX_HOME%
GOTO check_log
) ELSE (
ECHO 此路径% NGINX_HOME% 不存在,请检查 >> % CUT_LOG_FILE%
GOTO stop
)
::判断nginx的access. log
:check_log
@ECHO OFF
IF EXIST % NGINX_LOG_FILE% (
GOTO p
) ELSE (
ECHO % NGINX_LOG_FILE% 文件不存在,请检查 >> % CUT_LOG_FILE%
GOTO stop
)
::打印 当日志重复时,进行功能选择是否替换或者备份
:p
@ECHO OFF
IF EXIST % NGINX_LOG_FILE% _% TODAY% . 7z (
ECHO 当天的% NGINX_LOG_FILE% _% TODAY% . 7z已经存在,备份文件为% NGINX_LOG_FILE% _% TODAY% _% NOW% . 7z >> % CUT_LOG_FILE%
MOVE % NGINX_LOG_FILE% _% TODAY% . 7z % NGINX_LOG_FILE% _% TODAY% _% NOW% . 7z >> % CUT_LOG_FILE%
ECHO 备份完成 >> % CUT_LOG_FILE%
) ELSE (
GOTO main
)
::退出
:quit
@ECHO OFF
EXIT
::暂停
:stop
@ECHO OFF
PAUSE
::创建相关目录和对nginx日志进行切割
:main
@ECHO OFF
ECHO 结束nginx进程 >> % CUT_LOG_FILE%
TASKKILL / F / IM nginx. exe >> % CUT_LOG_FILE%
::7z a - mx=9 "%NGINX_LOG_FILE%_%TODAY%.7z" "%NGINX_LOG_FILE%" - sdel >> % CUT_LOG_FILE%
ECHO 日志文件打包 >> % CUT_LOG_FILE%
7z a - mx=9 "%NGINX_LOG_FILE%_%TODAY%.7z" "%NGINX_LOG_FILE%" >> % CUT_LOG_FILE%
ECHO 日志打包完成 >> % CUT_LOG_FILE%
SC START nginx >> % CUT_LOG_FILE%
ECHO nginx服务启动完成 >> % CUT_LOG_FILE%
GOTO quit