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. date -d'-2 day' +'%Y%m%d'

  7. date -d "2 days ago" +%Y%m%d


  8. 大前天

  9. date -d'-3 day' +'%Y%m%d'

  10. date -d "3 days ago" +%Y%m%d


  11. 明天

  12. date -d'+1 day' +'%Y%m%d'

  13. date -d "1 days next" +%Y%m%d

  14. date --date='tomorrow' '+%Y%m%d'

  15. .......

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

  1. uplogs() {


  2. log_path="/var/log/mail/"$y"/"$m"/"$d"/"

  3. log_file=$y$m$d"_mail_log"


  4. ftp -n 192.168.0.12 << autoftp

  5. user your_ftp_username your_ftp_password

  6. ascii

  7. put $log_path$s_log_file /$log_file

  8. quit

  9. autoftp

  10. }

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

  1. #!/bin/sh


  2. y=`date --date='1 days ago' "+%Y"`

  3. m=`date --date='1 days ago' "+%m"`

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


  5. uplogs() {


  6. log_path="/var/log/mail/"$y"/"$m"/"$d"/"

  7. log_file=$y$m$d"_mail_log"


  8. ftp -n 192.168.0.12 << autoftp

  9. user your_ftp_username your_ftp_password

  10. ascii

  11. put $log_path$s_log_file /$log_file

  12. quit

  13. autoftp

  14. }


  15. uplogs

[@more@]



转自:http://blog.itpub.net/7916042/viewspace-1025115/