天天看点

自动打包mysql下binlog日志

一、需求

线上一台机器做了rsync,从5台mysql机器拉取binlog日志到本地,之前是手动打包,现在写了个脚本,放到crontab定期执行打包,并删除打包后的的文件。

二、脚本如下

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

<code>#!/bin/sh</code>

<code># usage: </code>

<code># nohup sh /tmp/backup_binlog_tar.sh &gt; nohup.out  2&gt;/dev/null  &amp;</code>

<code>dir_backup_tar=</code><code>"/data0/backup_log-bin_tar"</code><code>_`</code><code>date</code> <code>+%Y-%m-%d--%H-%M-%S`</code>

<code>echo</code> <code>$dir_backup_tar</code>

<code>mkdir</code> <code>-p $dir_backup_tar</code>

<code>dir_binlog_140=</code><code>"/data0/backup_log-bin/140/log-bin"</code>

<code>dir_binlog_141=</code><code>"/data0/backup_log-bin/141/log-bin"</code>

<code>dir_binlog_145=</code><code>"/data0/backup_log-bin/145/log-bin"</code>

<code>dir_binlog_146=</code><code>"/data0/backup_log-bin/146/log-bin"</code>

<code>dir_binlog_182=</code><code>"/data0/backup_log-bin/182/log-bin"</code>

<code>instance_seq=140</code>

<code>dir_binlog=$dir_binlog_140</code>

<code>if</code> <code>[ ! -d $dir_binlog ]; </code><code>then</code>

<code>        </code><code>echo</code> <code>"$dir_binlog is not exit and skip!"</code> 

<code>fi</code>

<code>for</code> <code>instance </code><code>in</code> <code>`</code><code>ls</code> <code>$dir_binlog`</code>

<code>do</code>

<code>        </code><code>cd</code> <code>$dir_binlog</code>

<code>        </code><code>tar</code> <code>-zcf $dir_backup_tar/</code><code>"$instance_seq"</code><code>"_"</code><code>"$instance"</code><code>".tar.gz"</code> <code>$instance</code>

<code>        </code><code>if</code> <code>[ $? -</code><code>eq</code> <code>0 ];</code><code>then</code>

<code>                </code><code>echo</code> <code>"delete $dir_binlog/$instance/* ..."</code>

<code>                </code><code>rm</code> <code>-rf $dir_binlog/$instance/*</code>

<code>        </code><code>else</code>

<code>                </code><code>echo</code> <code>"tar $dir_binlog/$instance failed!!!"</code>

<code>        </code><code>fi</code>

<code>done</code>

<code>instance_seq=141</code>

<code>dir_binlog=$dir_binlog_141</code>

<code>instance_seq=145</code>

<code>dir_binlog=$dir_binlog_145</code>

<code>instance_seq=146</code>

<code>dir_binlog=$dir_binlog_146</code>

<code>instance_seq=182</code>

<code>dir_binlog=$dir_binlog_182</code>

本文转自 zouqingyun 51CTO博客,原文链接:http://blog.51cto.com/zouqingyun/1872665,如需转载请自行联系原作者

继续阅读