shell脚本实现自动压缩一天前的日志文件 ,并传到ftp服务器上

naonao_127关注2人评论19401人阅读2012-06-08 11:26:16

        生产环境下脚本自动备份脚本是企业中重要工具。备份数据和日志等文件是公司的重要资产,所以有句话叫“备份是救命的稻草”(——出自抚琴煮酒《构建高可用Linux服务器》一书)。

        此脚本的作用是将制定目录下的日志文件备份,只备份当天和一天前的日志(日志命名格式精确到小时),并以当天的年月日为格式进行压缩,然后传送到指定ftp服务器。

实例:# ll /home/lislog/

-rw-r--r-- 1 itadmin dba    8079474 06-07 00:59 lis42.log.2012-06-07-00
-rw-r--r-- 1 itadmin dba   50354570 06-07 01:59 lis42.log.2012-06-07-01
-rw-r--r-- 1 itadmin dba   12084741 06-07 02:59 lis42.log.2012-06-07-02

……
-rw-r--r-- 1 itadmin dba   14110627 06-08 07:59 lis42.log.2012-06-08-07
-rw-r--r-- 1 itadmin dba  112698103 06-08 08:59 lis42.log.2012-06-08-08
-rw-r--r-- 1 itadmin dba  372195176 06-08 09:59 lis42.log.2012-06-08-09

将该路径下当天及一天前文件进行压缩,以当天日期命名后传送到ftp服务器上。

脚本内容backuplislog.sh:

  1. #!/bin/bash
  2. FTPHOST="1.1.1.7"
  3. USERNAME="lislog"
  4. PASSWORD="lislog"
  5. #取前一天年月日
  6. y=`date --date='1 days ago' "+%Y"`
  7. m=`date --date='1 days ago' "+%m"`
  8. d=`date --date='1 days ago' "+%d"`
  9. #取当天年月日
  10. yt=`date "+%Y"`
  11. mt=`date "+%m"`
  12. dt=`date "+%d"`
  13. #以当天日期为压缩文件名
  14. y1=`date "+%Y"`
  15. m1=`date "+%m"`
  16. d1=`date "+%d"`
  17. #文件名信息
  18. SRCFILE="lis42.log.$y-$m-$d*   lis42.log.$yt-$mt-$dt*   lis42.log"
  19. DESFILE="lis42_$y1-$m1-$d1.zip"
  20. #需要备份文件的目录
  21. FILEPATH="/home/lislog"
  22. # FTP Server备份目录
  23. # BACKUPDIR="lislog"
  24. #压缩处理
  25. cd  $FILEPATH
  26. zip $DESFILE  $SRCFILE
  27. #登入FTP Server并传送档案
  28. ftp -v -n $FTPHOST << END
  29. user $USERNAME $PASSWORD
  30. binary
  31. put  $DESFILE
  32. bye
  33. END
  34. #删除临时压缩文件
  35. cd  $FILEPATH
  36. rm -f $DESFILE
  37. #end

最后扔到cron里就ok了,然后用的时候去拿就可以了

# crontab -l
30 6 * * * /home/itadmin/backuplislog.sh

结果查看:

#ll  /home/lislog/

-rw-r--r-- 1 itadmin dba 240100295 06-08 06:31 lis42_2012-06-08.zip

经测试追踪发现,已经稳定执行。

shell脚本实现自动压缩一天前的日志文件 ,并传到ftp服务器上的更多相关文章

  1. bat脚本:自动压缩n天前的文件【转载】

    原文如下: bat脚本:自动压缩n天前的文件-中原小伙-ChinaUnix博客http://blog.chinaunix.net/uid-24946452-id-1651762.html     磁盘 ...

  2. linux自动删除30天前的日志文件

    linux应用总结: 自动删除n天前的日志文件: . 使用的命令格式如下: find 对应目录 -mtime +天数 -name "文件名" -exec -rm -rf -name ...

  3. Linux记录-自动删除几天前的日志文件

    #!/bin/sh DDIR=/usr/local/appserver/tomcat_risk/logs/risk_manage find $DDIR -mtime +30 -name "* ...

  4. 自动删除n天前的日志(此处用于业务删除xml文件)

    Linux应用总结:自动删除n天前的日志 linux是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快 ...

  5. Linux计划任务,自动删除n天前的旧文件

    Linux计划任务,自动删除n天前的旧文件 linux是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,但需求总是多方面的嘛-我就觉得让系统定时 ...

  6. Windows 定时删除指定路径下N天前的日志文件

    Windows 定时删除指定路径下N天前的日志文件 Windows 下bat脚本文件的内容为 1. 删除指定路径下5天前的所有文件 @echo off set SrcDir=E:\WORK\Git s ...

  7. shell脚本每天自动备份mysql数据库

    一.mysql提供了一个mysqldump的工具可以方便的导出导入数据库信息: 二.使用命令行shell测试执行mysqldump,理解必备的参数,查看生成的sql备份文件是否符合需求: /usr/b ...

  8. shell脚本实现自动保留最近n次备份记录

    项目中出现的问题 某天上午服务器出现卡顿特别严重,页面加载速度奇慢,并且某些页面刷新出现404的问题,就连服务器的tab命令的自动提示都出现了问题,楼主费了九牛二虎之力,根据服务器排查发现,服务器数据 ...

  9. Centos7下crontab+shell脚本定期自动删除文件

    问题描述: 最近有个需求,就是rsync每次同步的数据量很多,但是需要保留的数据库bak文件 保留7天就够了,所以需要自动清理文件夹内的bak文件 解决方案: 利用shell脚本来定期删除文件夹内的任 ...

随机推荐

  1. flask 对于用户登录保持状态 flask_login

    先加载flask_login ext.py  在app下的__init__.py 进行引用把,我就不写了 login_manager = LoginManager() # 如果没有登录则重定向到该蓝图 ...

  2. 在 centos6 上安装 LAMP

    LAMP 代表的是 Linux, Apache, MySQL, 以及 PHP.   第一步,安装 Apache 使用 yum 安装 sudo yum install httpd 启动 httpd 服务 ...

  3. 13.浏览器屏幕缩放bug修复

    目录 问题:浏览器缩放时,轮播图显示不全,滚动水平滚动条,发现图片缺失 解决:隐藏水平滚动条,页面都只提供垂直滚动条的需求 问题:浏览器缩放时,轮播图显示不全,滚动水平滚动条,发现图片缺失 解决:隐藏 ...

  4. 建议20:建议通过Function扩展类型

    JavaScript允许为语言的基本数据类型定义方法.通过Object.prototype添加原型方法,该方法可被所有的对象,.这样的方法对函数,数组,字符串,数字,正则表达式和布尔值都适用.例如,通 ...

  5. 重定向URL乱码问题

    问题:response.sendRedirect("http:/aaa.com/#/expressTracking?carCode=" + carCode);   后台java代码 ...

  6. Natas8 Writeup(常见编码、php函数)

    Natas8: 同样给了php源码,审计源码,发现给了一个预设参数encodedSecret,以及一个加密函数encodeSecret, 该函数将secret参数先进行base64编码.然后用strr ...

  7. Python入门到放弃

    前传:计算机基础 01-计算机基础1 02-计算机基础2 第一章:Python入门 01-python入门之解释器环境安装 02-python入门之变量和基本数据类型 03-python内存管理之垃圾 ...

  8. 实用干货丨如何使用Prometheus配置自定义告警规则

    前 言 Prometheus是一个用于监控和告警的开源系统.一开始由Soundcloud开发,后来在2016年,它迁移到CNCF并且称为Kubernetes之后最流行的项目之一.从整个Linux服务器 ...

  9. AspNetCore3.1_Secutiry源码解析_5_Authentication_OAuth

    title: "AspNetCore3.1_Secutiry源码解析_5_Authentication_OAuth" date: 2020-03-24T23:27:45+08:00 ...

  10. 一些Nmap NSE脚本推荐

    前言 Nmap是一款强大的开源扫描工具.同时Nmap提供了强大的脚本引擎(Nmap Scripting Engine),支持通过Lua脚本语言来扩展Nmap的功能,在Nmap的发行版中已经包含了数百个 ...