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. numpy——>数组拼接np.concatenate

    语法:np.concatenate((a1, a2, ...), axis=0) 1.默认是 axis = 0,也就是说对0轴(行方向)的数组对象,进行其垂直方向(axis=1)的拼接(即数据整行整行 ...

  2. 关于beforeRouteEnter中的next()

    beforeRouteEnter(to,from, next){ console.log(this)   //undefined next(vm => { console.log(vm)}) } ...

  3. 【分布式锁】01-使用Redisson实现可重入分布式锁原理

    前言 主流的分布式锁一般有三种实现方式: 数据库乐观锁 基于Redis的分布式锁 基于ZooKeeper的分布式锁 之前我在博客上写过关于mysql和redis实现分布式锁的具体方案:https:// ...

  4. consoleInfo 输出 数组套对象 不显示...的方法 序列化 再反序列化

    consoleInfo (...args) { // console.info('this', this) const name = this.$options.name let outName = ...

  5. BigDecimal介绍及BigDecimal实现四舍五入

    BigDecimal介绍及BigDecimal实现四舍五入 BigDecimal是什么? 我们知道float最大精度是7-8位有效数字,而double的最大精度是16-17位有效数字,那么大于16位的 ...

  6. vuepress-theme-reco + Github Actions 构建静态博客,部署到第三方服务器

    最新博客链接 Github链接 查看此文档前应先了解,vuepress基本操作 参考官方文档进行配置: vuepress-theme-reco VuePress SamKirkland / FTP-D ...

  7. CSS重构:样式表性能调优

    这两天窝在家里又看了本CSS相关的书:<CSS重构:样式表性能调优>.重构是指在不改变代码行为的前提下,重写代码,使其更加简洁.易于复用. 这本书读起来比较快,可挑自己感兴趣的读,前面三章 ...

  8. Uncovering thousands of new peptides with sequence-mask-search hybrid de novo peptide sequencing framework (使用序列掩码搜索结合肽段从头测序框架发现了数千个新肽段)-解读人:刘佳维

    期刊名:Molecular & Cellular Proteomics 发表时间:(2019年12月) IF:4.828 单位: 朱拉隆功大学 费城威斯塔研究所 物种:人 技术:de novo ...

  9. SpringBoot 拦截器 && 拦截之后返回前台自定义格式

    1.加入 阿里的 json jar包 <!--json jar相关jar包--> <dependency> <groupId>com.fasterxml.jacks ...

  10. 利用Docker手动构建WebLogic镜像的步骤

    info 我的Docker环境信息如下: [root@localhost ~]# docker info -f " OSType: {{.OperatingSystem}} {{.Archi ...