Windows奇葩脚本持续更新

网络

设置静态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.batmysql的备份脚本,如果不需要重建原数据库,去掉多余参数即可
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.batsqlserver的备份脚本,使用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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值