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