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. MySQL使用前查看状态

    1.检查MySQL服务器是否启动:ps -ef | grep mysqld 如果MySql已经启动,以上命令将输出mysql进程列表,如下所示:mysql下一行 如果mysql未启动,你可以使用以下命 ...

  2. Leetcode 1160: 拼写单词

    给你一份『词汇表』(字符串数组) words 和一张『字母表』(字符串) chars. 假如你可以用 chars 中的『字母』(字符)拼写出 words 中的某个『单词』(字符串),那么我们就认为你掌 ...

  3. python对接elasticsearch的基本操作

    基本操作 #!/usr/bin/env python # -*- coding: utf-8 -*- # author tom from elasticsearch import Elasticsea ...

  4. Markdown试用

    目录 今天又是充满希望的一天 一.是什么 二.为什么 三.怎么做 代码 这世界上好人坏人都很多,我不是一个坏人. 我不是个英雄,我只是个拿

  5. vue-element-admin中是如何配置浏览器中的页面标题

    因为在vue-element-admin中杈哥是写个一个动态路由标题,就是说你点进那个页面,它会显示对应页面的标题,所以我们仅仅在index页面进行修改是没有用的,那么我们改如何修改呢? 找到perm ...

  6. 五分钟学Java:如何学习Java面试必考的网络编程

    原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 本文思维导图 简介 Java作为一门后端语言,对于网络编程的支持是必不可少的,但是,作为一个经常CRUD的Java工程师,很多时候都不 ...

  7. 【Weiss】【第03章】练习3.22、3.23、3.24:无代码题,栈的思考题

    [练习3.22] a.提出支持栈的Push和Pop操作以及第三种操作FindMin的数据结构,其中FindMin 返回该数据结构的最小元素,所有操作在最坏情况下的运行时间都是O(1). b.证明,如果 ...

  8. 一文带你熟悉SpringIOC

    Spring的IOC: IOC是Spring的一个核心组件,理解IOC是迈向Spring大门的重要一步 现实生活中,我们写字用的笔会有多种颜色,为了做不同的标记,需要用不同颜色的笔.如果只是使用一两种 ...

  9. Journal of Proteome Research | Prediction of an Upper Limit for the Fraction of Interprotein Cross-Links in Large-Scale In Vivo Cross-Linking Studies (分享人:张宇星)

    题目:Prediction of an Upper Limit for the Fraction of Interprotein Cross-Links in Large-Scale In Vivo ...

  10. python制作一键启动脚本

    我们的系统环境或许没有Python环境,又想使用脚本,这就要使该脚本能脱离Python环境独立运行,比如说将该脚本打包成exe可执行文件等.那么怎么做呢?你可能想到py2exe和pyinstaller ...