SuperTaoer::Thanksgiving

对于整个世界我微不足道,但是我对于自己确是全部。

三月 26, 2007

linux ftp上传脚本和取得前一天的日期

类归于: 程序 技术 — SuperTaoer @ 2:59 下午

今天工作需要要把前一天的日志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


Leave a Message

No Messages

No Messages

RSS feed for comments on this post. TrackBack URI

Leave a Message





Powered by WordPress