公司搭建了svn服務器,現在的需求是需要每天定時給上司發送svn日誌郵件,所以就一步一步來配置。
工具/原料
CentOS 7.0
第一步: 配置mail發送郵件
查看mail是否安裝
配置mail
在/etc/mail.rc中添加:
set from=賬號 smtp=smtp.exmail.qq.com
set smtp-auth-user=用戶名 smtp-auth-password=密碼 smtp-auth=login
smtp配置設置
我這裡採用了qq企業郵箱,就以這個為例。
測試mail是否能發送
echo 內容 mail -s 標題 [email protected]
第二步: 獲取svn版本日誌
查看svn log 參數
查看當天的版本日誌
svn log -r {DATE} -v
svn log -r {2015-11-25}:{2015-11-26} -v
SVN強制用戶填寫日誌信息
在hook目錄下添加pre-commit
REPOS="$1"
TXN="$2"
SVNLOOK=/usr/bin/svnlook
LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" grep "[a-zA-Z0-9]" wc -c`
if [ "$LOGMSG" -lt 15 ];
then
echo "Log message can't be empty! you must input more than 15 chars as comment!." 1>&2
exit 1
fi
第三步: 設置定時任務
創建執行文件
#!/bin/sh
#send svn log mail
cd /***
/usr/bin/svn log -r {$(date -d last-day +%Y-%m-%d)}:{$(date +%Y-%m-%d)} -v mail -s svnLog_$(date +%Y-%m-%d) [email protected]
創建任務
crontab -e
30 8 * * * . /usr/local/command/sendSvnLogMail.sh
查看任務
crontab -l