`
oplife
  • 浏览: 2723 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Windows Shell 获取昨天日期,定时远程下载服务器日志

阅读更多
借用了一些网上搜索到的信息,感谢前辈,挂一漏万。

一、先说要求:
本地(windows)每日定时取远程服务器(Linux)上的Tomcat日志、Mysql备份文件(另外文档介绍如何备份)

二、思路:
1.每日定时把服务器端的日志打包
2.每日定时从本地发请求,连接远程服务器,下载打包的日志

三、使用工具:
windows本地:pscp.exe(用于windows与Linux之间copy文件,网上介绍很多)
windows Shell脚本:xxx.bat (用于获取昨天的日期)
Linux端:每日定时把log日志打成tar包(压缩,便于传输)

四、服务器端定时打包
以下为server_log_bak.sh
#!/bin/sh
lastdate=`date -d "-1 day" +%Y-%m-%d`
cd /usr/local/apache-tomcat-7.0.62/logs
tar czvf APPLICATION.log.$lastdate.tar.gz APPLICATION.log.$lastdate
tar -czvf localhost_access_log.$lastdate.txt.tar.gz localhost_access_log.$lastdate.txt

然后再编进cron(以下为每日1:30进行此操作)
30 1 * * *  /home/APPLICATION/server_log_bak.sh


五、本地
准备:
1. pscp.exe
2. xxx.bat(计算昨天日期)
3. run_bak.bat(真正运行的脚本文件)
把这几个文件放在C:\TEMP\LOG下
附xxx.bat文件内容(这个是借鉴了网上一些脚本,改了一点点)
@echo off & setlocal

if [%1]==[] goto :Help
call :GetDayDiff %date:~0,10% %1 &goto :EOF

:GetDayDiff
call :Date2Day %1 days
set/a days=%days%+%2
call :Day2Date %days% result
echo %result%
goto :EOF

:Date2Day
setlocal ENABLEEXTENSIONS
for /f "tokens=1-3 delims=/-, " %%a in ('echo/%1') do (set yy=%%a & set mm=%%b & set dd=%%c )
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %2=%j%&goto :EOF

:Day2Date
setlocal ENABLEEXTENSIONS
set /a i=%1,a=i+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
endlocal&set %2=%yy%-%mm%-%dd%&goto :EOF

:Help
echo xx 10 显示10天后的时间
echo xx -5 显示 5天前的时间
rem ------- EOF ---------
2009-01-13
2009-01-12
2009-01-23
2006-04-19
2036-05-31 


以下为:run_bak.bat文件内容
rem @echo on
rem set todaydate=%date:~0,4%%date:~5,2%%date:~8,2%
call xxx.bat -1 >tmp.txt
set /p todaydate= < tmp.txt

rem echo %todaydate%
set cmd001=[color=red]远程用户名[/color]@[color=red]远程IP[/color]:/APPLICATION/logs/APPLICATION.log.%todaydate%.tar.gz
pscp -pw [color=red]远程服务器密码[/color] -C %cmd001% D:\java\tomcat_log_auto_bak\qbd\  


可以手动运行一下bat试试,如果成功,再设置本地windows的计划任务(win7:开始--附件--系统工具--任务计划程序)
分享到:
评论

相关推荐

    shell脚本比较两台服务器目录及文件是否一致

    - `remote_dir`:远程服务器的目录路径。 - `local_md5_file`:存储本地文件MD5值的文件名。 - `remote_md5_file`:存储远程文件MD5值的文件名。 2. **获取MD5值**: - 使用`find`命令查找本地指定目录下的所有...

    windows下通过ssh自动备份的脚本

    在Windows操作系统中,SSH(Secure Shell)是一种网络协议,用于安全地远程登录和执行命令,常见于Linux系统,但也可通过工具在Windows下实现。本文将详细介绍如何利用SSH在Windows环境下创建一个自动备份脚本,以...

    linux自动备份文件 并上传到远程服务器 脚本实现

    本文将详细介绍如何利用Shell脚本在Linux系统上实现MySQL数据库的定时自动备份,并通过FTP协议上传至远程服务器。 #### 目标需求分析 目标是开发一个脚本,该脚本能定期执行MySQL数据库的备份,并将这些备份文件...

    使用Linux shell脚本实现FTP定时执行批量下载指定文件

    cd /hour # 远程服务器文件目录 lcd /home/Comparisor/XN_data/hour # 本地存放的文件目录 hash prompt off # 关闭交互 mget *$T* # 下载昨天的小时文件 cd ../day mget *$T* # 下载昨天的日文件 close bye EOF ``` ...

    linux下远程定时备份oracle数据库

    在备份完成后,你可以使用rsync或scp将备份文件从远程服务器同步到本地或其他安全存储位置。例如: ```bash rsync -avz --delete /path/to/backup.dmp user@remote_server:/path/to/remote/backup/ ``` 这里的`-a`...

    远程重启服务器

    "远程 重启 服务器"的标签进一步确认了我们要探讨的主题:如何安全、有效地执行远程服务器重启。通常,这需要一种远程访问协议,如SSH(Secure Shell)对于Linux服务器,或者RDP(远程桌面协议)对于Windows服务器。...

    shell cron定时脚本 内附ftp上传 每天2点 定时导出数据 上传到指定目录

    总的来说,这个shell cron定时脚本结合了数据处理、压缩、日志记录以及文件传输功能,实现了一套自动化的数据管理流程。通过合理利用这些工具,IT管理员可以有效提升工作效率,确保数据的安全备份和远程同步。

    远程控制主机的SHELL自动化管理 案例

    本案例将探讨如何利用SHELL脚本来定时获取远程主机上的Perl脚本执行结果,并将其记录到本地文件中。 首先,我们需要了解SHELL脚本的基本结构。一个简单的SHELL脚本通常由变量声明、条件语句、循环语句以及命令行...

    下载服务器文件到本地,并删除已下载的服务器文件

    它允许用户登录到远程服务器,浏览目录,下载文件,甚至上传文件。在执行“下载并删除”操作时,通常会使用FTP的`get`命令下载文件,然后使用`delete`命令移除服务器上的文件。 2. **SFTP(Secure File Transfer ...

    SFTP定时扫描本地文件上传到Linux服务器

    1. **Java SFTP库**:如JSch(Java Secure Channel)库,它提供了对SSH和SFTP的支持,用于建立与远程服务器的连接,进行文件上传和下载操作。 2. **文件监控**:Java中可以使用`java.nio.file`包中的`WatchService`...

    PHP结合shell实现对服务器的基本管理

    10. **网络操作**:使用`curl`等库,PHP可以发起HTTP请求,与远程服务器通信,实现数据的获取或发送。这对于监控远程服务、实现API交互很有帮助。 总的来说,PHP结合Shell能实现服务器的多种管理功能,但同时也需要...

    远程截屏工具----服务器管理必备

    通过安全的网络连接,如SSH(Secure Shell)或自定义加密协议,客户端可以即时获取服务端的屏幕更新,实现远程查看。 在实际应用中,远程截屏工具的特性包括: 1. 实时性:工具应提供近乎实时的屏幕更新,确保管理...

    ssh远程执行命令方法和Shell脚本实例

    当执行需要交互式输入的命令时,可以使用 `-t` 参数来强制分配伪TTY(Pseudo-TTY),这样就可以在远程服务器上输入自己的提权密码了,更加安全。 命令格式如下: ```bash ssh -t -p $port $user@$ip 'cmd' ``` ...

    shell方式重启weblogic

    本文将深入探讨如何通过Shell脚本实现WebLogic服务器的启动和停止,同时也会涉及到与源码和工具相关的知识。 首先,我们来看标题提到的"shell方式重启WebLogic"。在Linux或Unix系统中,WebLogic的管理通常通过...

    电信设备-获取服务器屏幕输出信息的系统.zip

    "获取服务器屏幕输出信息的系统"是一个专题,它涉及到如何远程访问和监控服务器的状态,以确保服务的稳定性和安全性。这个主题主要涵盖了以下几个核心知识点: 1. **远程桌面协议(RDP)**:RDP是微软提供的一种远程...

    用PUTTY自动将服务器上的备份文件取到本地

    总结起来,利用PUTTY的自动化功能,我们可以构建一个安全、可靠的过程,定期从远程服务器获取备份文件。这个过程涉及到SSH连接、私钥认证、命令行参数以及定时任务的设置。在实际操作中,确保了解你的服务器环境,...

    shell自动升级脚本

    在描述中提到的脚本,很可能是定期检查服务器上指定的更新文件,然后通过网络从远程服务器下载最新的发布包。这通常涉及到版本比较、文件替换和重启服务等步骤。为了实现自动化,脚本会设定一定的触发条件,比如定时...

    windows远程同步工具(服务端和客户端)

    【标题】:Windows远程同步工具——csRsync详解 【描述】:在Windows环境中,进行跨平台文件同步是一项常见的需求,特别是在系统维护、备份和协作过程中。csRsync是一款强大的远程同步工具,它允许用户在Windows与...

    服务器同步备份工具cwRsync服务器端客户端

    例如,以下命令将本地的“C:\data”目录同步到远程服务器的“backup”模块: ```shell rsync -avz --delete --rsh="ssh -p &lt;port&gt;" C:\data user@&lt;server_ip&gt;:/backup ``` 其中,`&lt;port&gt;`是服务器rsync服务...

    sftp定时下载,并解析xml

    在实际应用中,我们可能需要结合SFTP下载和XML解析来实现特定功能,比如监控服务器上的日志文件,定时下载并解析以获取关键信息。这通常涉及到错误处理、数据清洗、转换和存储等步骤。例如,我们可以用Python的`...

Global site tag (gtag.js) - Google Analytics