今天工作需要要把前一天的日志ftp到另外一台服务器上去。。。
于是乎,上网翻查资料
感觉linux下的date命令很好玩,如果查询前一天是几日,那么是
- date --date='1 days ago' "+%d"
很形象的命令
另外还有几种偷懒的方法:摘抄自: blog.flashphp.org/blog/2/dev/2006/09/28/linuxeeec
- 昨天:
- date -d'-1 day' +'%Y%m%d'
- date -d "1 days ago" +%Y%m%d
- date --date='yesterday' '+%Y%m%d'
- 前天
- date -d'-2 day' +'%Y%m%d'
- date -d "2 days ago" +%Y%m%d
- 大前天
- date -d'-3 day' +'%Y%m%d'
- date -d "3 days ago" +%Y%m%d
- 明天
- date -d'+1 day' +'%Y%m%d'
- date -d "1 days next" +%Y%m%d
- date --date='tomorrow' '+%Y%m%d'
- .......
好了,这样子就可以得到昨天是几号了,接着来解决脚本自动ftp的问题,
为了方便,写了一个函数
- uplogs() {
-
- log_path="/var/log/mail/"$y"/"$m"/"$d"/"
- log_file=$y$m$d"_mail_log"
- ftp -n 192.168.0.12 << autoftp
- user your_ftp_username your_ftp_password
- ascii
- put $log_path$s_log_file /$log_file
- quit
- autoftp
- }
最后组合起来,脚本就是这样子的。
- #!/bin/sh
- y=`date --date='1 days ago' "+%Y"`
- m=`date --date='1 days ago' "+%m"`
- d=`date --date='1 days ago' "+%d"`
- uplogs() {
-
- log_path="/var/log/mail/"$y"/"$m"/"$d"/"
- log_file=$y$m$d"_mail_log"
- ftp -n 192.168.0.12 << autoftp
- user your_ftp_username your_ftp_password
- ascii
- put $log_path$s_log_file /$log_file
- quit
- autoftp
- }
- uplogs