Chinaunix首页 | 论坛 | 博客
  • 博客访问: 569596
  • 博文数量: 33
  • 博客积分: 2001
  • 博客等级: 大尉
  • 技术积分: 2464
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 11:59
文章分类

全部博文(33)

文章存档

2009年(1)

2008年(32)

我的朋友

分类: LINUX

2008-04-14 10:38:21

文章类别: — SuperTaoer @ 2:59 pm

今天工作需要要把前一天的日志ftp到另外一台服务器上去。。。
于是乎,上网翻查资料

感觉linux下的date命令很好玩,如果查询前一天是几日,那么是

  1. date --date='1 days ago' "+%d"

很形象的命令

另外还有几种偷懒的方法:摘抄自: blog.flashphp.org/blog/2/dev/2006/09/28/linuxeeec

  1. 昨天:
  2. date  -d'-1 day' +'%Y%m%d'
  3. date -d "1 days ago" +%Y%m%d
  4. date --date='yesterday' '+%Y%m%d'
  5.  
  6. 前天
  7. date  -d'-2 day' +'%Y%m%d'
  8. date -d "2 days ago" +%Y%m%d
  9.  
  10. 大前天
  11. date  -d'-3 day' +'%Y%m%d'
  12. date -d "3 days ago" +%Y%m%d
  13.  
  14. 明天
  15. date  -d'+1 day' +'%Y%m%d'
  16. date -d "1 days next" +%Y%m%d
  17. date --date='tomorrow' '+%Y%m%d'
  18. .......

好了,这样子就可以得到昨天是几号了,接着来解决脚本自动ftp的问题,
为了方便,写了一个函数

  1. uplogs() {

  2. log_path="/var/log/mail/"$y"/"$m"/"$d"/"
  3. log_file=$y$m$d"_mail_log"
  4.  
  5. ftp -n 192.168.0.12 << autoftp
  6. user your_ftp_username your_ftp_password
  7. ascii
  8. put $log_path$s_log_file /$log_file
  9. quit
  10. autoftp
  11. }

最后组合起来,脚本就是这样子的。

  1. #!/bin/sh
  2.  
  3. y=`date --date='1 days ago' "+%Y"`
  4. m=`date --date='1 days ago' "+%m"`
  5. d=`date --date='1 days ago' "+%d"`
  6.  
  7. uplogs() {

  8. log_path="/var/log/mail/"$y"/"$m"/"$d"/"
  9. log_file=$y$m$d"_mail_log"
  10.  
  11. ftp -n 192.168.0.12 << autoftp
  12. user your_ftp_username your_ftp_password
  13. ascii
  14. put $log_path$s_log_file /$log_file
  15. quit
  16. autoftp
  17. }
  18.  
  19. uplogs
阅读(3954) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~