回答編集履歴

3

訂正

2017/06/14 03:21

投稿

A.Ichi
A.Ichi

スコア4070

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

2017/06/14 03:21

投稿

A.Ichi
A.Ichi

スコア4070

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

追加

2017/06/14 02:27

投稿

A.Ichi
A.Ichi

スコア4070

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が終了以上の充分な値を設定します。