我有一個腳本來操縱一些日誌文件,然後將它們推送到服務器,以加載到mysql並進行分析。除了收集日誌的自動化以外,我幾乎可以解決所有這些過程。我使用sed從日誌文件中取出所有"
,所以它可以更容易地導入到mysql中。當我運行下面的命令時,它工作正常,但在shell腳本中運行相同的命令,並創建一個空文件。我不知道爲什麼 - 任何幫助將不勝感激。sed在腳本中清空文件
sed 's/\"//g' /usr/local/tomcat/logs/localhost_access_log.$yest.txt > /$DIR/iweb$yest.txt
這裏是完整的腳本。
#!/bin/bash
#Script to manage catalina logs on our servers.
#First create the needed variables.
date=$(date +"%m_%d_%y")
adate=$(date +"%Y-%m-%d")
yest=$(date -d 'yesterday' +"%Y-%m-%d")
Customer="iwebsup"
log=/isweb/admin/catmanage/log
DIR=/catmanage
#Make Directory
#mkdir /catmanage/tomcat1/
#Run access logs through sed to remove " from file
echo "Removing quote marks from access log and moving to direcotry" &> $log.$date
sed 's/\"//g' "/usr/local/tomcat/logs/localhost_access_log.$yest.txt" > "/$DIR/iweb$yest.txt" &> $log.$date
是'$'文字'$'符號還是變量y? – 2015-02-09 14:19:37
$ yest是一個將昨天日期注入文件的變量。該變量被配置爲與tomcat如何在訪問日誌文件中放置日期相匹配 – Deldran 2015-02-09 14:30:59
具有與其他用戶可以測試相同行爲的最小shell腳本如何? – Birei 2015-02-09 14:35:50