回答編集履歴
3
訂正
test
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
|
25
25
|
#!/bin/sh
|
26
26
|
|
27
|
-
DAY=$(date -d '1 day' +%Y%m%d)
|
27
|
+
DAY=$(date -d '-1 day' +%Y%m%d)
|
28
28
|
|
29
29
|
cd /home/user/log
|
30
30
|
|
2
訂正cron
test
CHANGED
@@ -46,7 +46,7 @@
|
|
46
46
|
|
47
47
|
apache起動ユーザのcrontabに登録
|
48
48
|
|
49
|
-
0 0 * * * /home/hoge/httpd_rotate.sh
|
49
|
+
0 0 * * * /home/hoge/httpd_rotate.sh >/dev/null 2>&1
|
50
50
|
|
51
51
|
```
|
52
52
|
|
1
追加
test
CHANGED
@@ -11,3 +11,47 @@
|
|
11
11
|
[このサイト](http://xn--u9j0md1592aqmt715c.net/linux-apache-log-rotate/)を参考に作成されてはどうでしょうか。
|
12
12
|
|
13
13
|
apachectl gracefulがお勧めとおもいました。
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
今日の時点に於いて一日前を切り取るのは面倒なので、毎日深夜にてログを作成する事をお勧めします。
|
18
|
+
|
19
|
+
例えばlinuxであれば、cronで0時に起動して日付の付いたログを作成する方法が考えられます。
|
20
|
+
|
21
|
+
```
|
22
|
+
|
23
|
+
<httpd_rotate.sh>
|
24
|
+
|
25
|
+
#!/bin/sh
|
26
|
+
|
27
|
+
DAY=$(date -d '1 day' +%Y%m%d)
|
28
|
+
|
29
|
+
cd /home/user/log
|
30
|
+
|
31
|
+
mv access_log access_log.$DAY
|
32
|
+
|
33
|
+
mv error_log error_log.$DAY
|
34
|
+
|
35
|
+
/usr/sbin/apachectl graceful
|
36
|
+
|
37
|
+
sleep 60
|
38
|
+
|
39
|
+
gzip access_log.$DAY
|
40
|
+
|
41
|
+
gzip error_log.$DAY
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
apache起動ユーザのcrontabに登録
|
48
|
+
|
49
|
+
0 0 * * * /home/hoge/httpd_rotate.sh
|
50
|
+
|
51
|
+
```
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
apachectlの場所は、find / -name apachectl で探してみてください。
|
56
|
+
|
57
|
+
sleepの長さはapachectlが終了以上の充分な値を設定します。
|