1 |
%define name smeserver-automysqlbackup |
%define name smeserver-automysqlbackup |
2 |
%define version 3.0.RC7 |
%define version 3.0.RC6 |
3 |
%define release 1 |
%define release 12 |
4 |
%define rpmver 3.0.RC6 |
%define rpmver 3.0.RC6 |
5 |
|
|
6 |
|
epoch: 2 |
7 |
Summary: automysqlbackup is a script to backup your msql database on sme8 |
Summary: automysqlbackup is a script to backup your msql database on sme8 |
8 |
Name: %{name} |
Name: %{name} |
9 |
Version: %{version} |
Version: %{version} |
14 |
URL: http://sourceforge.net/projects/automysqlbackup/ |
URL: http://sourceforge.net/projects/automysqlbackup/ |
15 |
BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot |
BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot |
16 |
BuildArchitectures: noarch |
BuildArchitectures: noarch |
17 |
Requires: e-smith-base, e-smith-release >= 8 |
Requires: e-smith-base, e-smith-release >= 9 |
18 |
Requires: pax |
Requires: pax |
19 |
Requires: automysqlbackup |
Requires: automysqlbackup |
20 |
BuildRequires: e-smith-devtools |
BuildRequires: e-smith-devtools |
21 |
|
Patch0: smeserver-automysqlbackup-AdjustableCronJob.patch |
22 |
|
Patch1: smeserver-automysqlbackup-enhanced-templates.patch |
23 |
|
Patch2: smeserver-automysqlbackup-fix-runmysql.patch |
24 |
|
Patch3: smeserver-automysqlbackup-update-permission-change.patch |
25 |
|
Patch4: smeserver-automysqlbackup-3.0.RC6-bz10806.errorsAndCreateUsers.patch |
26 |
|
|
27 |
%description |
%description |
28 |
This RPM is an unofficial addon for the SME Server 8.x. |
This RPM is an unofficial addon for the SME Server 9.x. |
29 |
The target audience is the Linux/E-smith administrator |
The target audience is the Linux/E-smith administrator |
30 |
who wants to backup their mysql databases with an automatic way. |
who wants to backup their mysql databases with an automatic way. |
31 |
This script is based on automysqlbackup V3.0 |
This script is based on automysqlbackup V3.0 |
33 |
|
|
34 |
|
|
35 |
%changelog |
%changelog |
36 |
* Mon Jun 16 2014 JP Pialasse <tests@pialasse.com> 3.0.RC7-1.sme |
* Sun Sep 22 2019 Jean-Philipe Pialasse <tests@pialasse.com> 3.0.RC6-12.sme |
37 |
- initial import to SME9 contribs |
- fix multiple cause of error noise and performance [SME: 10806] |
38 |
|
* avoid parallel run of all backups, cron template rewritten |
39 |
|
* avoid multiple parallel or repeated chmod and chown |
40 |
|
* protect from undesired chmod or chown |
41 |
|
* consistent use of status for cron and conf templates |
42 |
|
* create backup user for mysql, mysql55 and mysql57 (Maria to do) |
43 |
|
* update mysql53 use to mysql51 as variable |
44 |
|
* migrate fragment to remove Mysql55 Mysql57 Mymaria Mysql53 if Mysql53 exist |
45 |
|
* remove default value in db for Mysql55 Mysql57 Mymaria Mysql53 |
46 |
|
* default as enabled in fragments for all automysql My* properties |
47 |
|
- create default user in dbs [SME: 10808] |
48 |
|
|
49 |
|
* Mon Nov 26 2018 John Crisp <jcrisp@safeandsoundit.co.uk> 3.0.RC6-11.sme |
50 |
|
- fix runmysqlscript to allow for change in Backupdir key [SME: 10655] |
51 |
|
|
52 |
|
* Mon Nov 26 2018 John Crisp <jcrisp@safeandsoundit.co.uk> 3.0.RC6-10.sme |
53 |
|
- fix runmysqlbackup to allow for new databases [SME: 10654] |
54 |
|
|
55 |
|
* Fri Jul 06 2018 John Crisp <jcrisp@safeandsoundit.co.uk> 3.0.RC6-9.sme |
56 |
|
- Template configuration files |
57 |
|
- run automysqlbackup per conf directly from cron rather than runmysqlbackup |
58 |
|
- Add extra DB keys for mysql53, mysql55, mysql57 |
59 |
|
|
60 |
|
* Sun Apr 02 2017 stephane de Labrusse <stephdl@de-labrusse.fr> 3.0.RC6-8.sme |
61 |
|
- Added smeserver-automysqlbackup-AdjustableCronJob.patch |
62 |
|
- The time to run the Job is adjustable |
63 |
|
|
64 |
|
* Wed Sep 16 2015 stephane de Labrusse <stephdl@de-labrusse.fr> 3.0.RC6-6.sme |
65 |
|
- Added 'epoch: 2' |
66 |
|
|
67 |
|
* Sat Aug 22 2015 stephane de Labrusse <stephdl@de-labrusse.fr> 3.0.RC6-5.sme |
68 |
|
- Initial release to contribs9 |
69 |
|
|
70 |
|
* Sun Aug 17 2014 Stephane de Labrusse <stephdl@de-labrusse.fr> 3.0.RC6-4 |
71 |
|
- added my own patch against the --events warning |
72 |
|
--Warning: Skipping the data of table mysql.event. Specify the --events option explicitly. |
73 |
|
|
74 |
* Sun Oct 27 2013 Stephane de Labrusse <stephdl@de-labrusse.fr> 3.0.RC6.3 |
* Sun Oct 27 2013 Stephane de Labrusse <stephdl@de-labrusse.fr> 3.0.RC6.3 |
75 |
- split the contrib in two versions smeserver-automysqlbackup and automysqlbackup |
- split the contrib in two versions smeserver-automysqlbackup and automysqlbackup |
82 |
rm -rf $RPM_BUILD_ROOT |
rm -rf $RPM_BUILD_ROOT |
83 |
|
|
84 |
%setup |
%setup |
85 |
|
%patch0 -p1 |
86 |
|
%patch1 -p1 |
87 |
|
%patch2 -p1 |
88 |
|
%patch3 -p1 |
89 |
|
%patch4 -p1 |
90 |
|
|
91 |
%build |
%build |
92 |
|
perl createlinks |
93 |
|
|
94 |
%install |
%install |
95 |
/bin/rm -rf $RPM_BUILD_ROOT |
/bin/rm -rf $RPM_BUILD_ROOT |
96 |
(/usr/bin/find . -depth -print | /bin/cpio -dump $RPM_BUILD_ROOT) |
(cd root ;/usr/bin/find . -depth -print | /bin/cpio -dump $RPM_BUILD_ROOT) |
97 |
/bin/rm -f %{name}-%{version}-filelist |
/bin/rm -f %{name}-%{version}-filelist |
98 |
/sbin/e-smith/genfilelist $RPM_BUILD_ROOT > %{name}-%{version}-filelist |
/sbin/e-smith/genfilelist $RPM_BUILD_ROOT \ |
99 |
|
--file /sbin/e-smith/runmysqlbackup 'attr(0750,root,root)' \ |
100 |
|
> %{name}-%{version}-filelist |
101 |
|
|
102 |
|
|
103 |
%files -f %{name}-%{version}-filelist |
%files -f %{name}-%{version}-filelist |
114 |
MYSQLUSER=backupuser |
MYSQLUSER=backupuser |
115 |
# Expland template |
# Expland template |
116 |
/etc/e-smith/events/actions/initialize-default-databases |
/etc/e-smith/events/actions/initialize-default-databases |
117 |
|
/sbin/e-smith/expand-template /etc/cron.d/runmysqlbackup |
118 |
|
|
119 |
echo "=========================================================================================" |
echo "***********************************************************************" |
120 |
echo " Your Databases are saved in /root/backup/db " |
echo " " |
121 |
echo " only Root can access to these folders" |
echo "Creating backup user for default mysql53 database" |
|
echo " a mail is send to Admin for all logs " |
|
|
echo " " |
|
|
echo " Configuration file is /etc/automysqlbackup/myserver.conf" |
|
|
echo " " |
|
|
echo " For a manual play you can use directly" |
|
|
echo " automysqlbackup /etc/automysqlbackup/myserver.conf " |
|
|
echo " else backups are done every night at 04H00 AM with /etc/cron.daily/runmysqlbackup" |
|
|
echo "=========================================================================================" |
|
|
echo " RESTORING" |
|
|
echo " In a root terminal" |
|
|
echo " cd /root/backup/db/ and choose your backup" |
|
|
echo " gunzip file-name.sql.gz" |
|
|
echo " Next you will need to use the mysql client to restore the DB from the sql file." |
|
|
echo " mysql database < /path/file.sql" |
|
|
echo " NOTE: Make sure you use < and not > in the above command because you are piping the file.sql" |
|
|
echo " to mysql and not the other way around" |
|
|
echo "=========================================================================================" |
|
|
echo " Some db configuration for handle this contrib" |
|
|
echo " Mailcontent (stdout/log/files/quiet)" |
|
|
echo " # What would you like to be mailed to you?" |
|
|
echo " # - log : send only log file (default)" |
|
|
echo " # - files : send log file and sql files as attachments (see docs)" |
|
|
echo " #- stdout : will simply output the log to the screen if run manually." |
|
|
echo " #- quiet : Only send logs if an error occurs to the MAILADDR." |
|
|
echo " Sizemail=8000 (bytes)" |
|
|
echo " Mailto=root (or any other user@domaine.com)" |
|
|
echo " Backupdir=path to the folder where mysql files are saved" |
|
|
echo " " |
|
|
echo " ex: config setprop automysqlbackup Mailcontent files" |
|
|
echo "=========================================================================================" |
|
|
|
|
|
|
|
|
|
|
122 |
#create backupuser and give rights |
#create backupuser and give rights |
123 |
MYSQLPASS=$(/sbin/e-smith/config getprop $SMEDB DbPassword) |
MYSQLPASS=$(/sbin/e-smith/config getprop $SMEDB DbPassword) |
124 |
mysql -e " GRANT SELECT,LOCK TABLES ON *.* TO $MYSQLUSER@'localhost' " |
mysql -e " GRANT EVENT,SELECT,LOCK TABLES ON *.* TO $MYSQLUSER@'localhost' " |
125 |
mysql -u root -e "SET PASSWORD FOR $MYSQLUSER@localhost = PASSWORD( '$MYSQLPASS' ) " |
mysql -u root -e "SET PASSWORD FOR $MYSQLUSER@localhost = PASSWORD( '$MYSQLPASS' ) " |
126 |
mysqladmin flush-privileges |
mysqladmin flush-privileges |
127 |
/etc/rc.d/init.d/mysql.init start |
/etc/rc.d/init.d/mysql.init start |
128 |
|
echo "done" |
129 |
|
echo "*** If you add mysql55/mysql57 you must add a backup user ***" |
130 |
|
echo "You can use the password from config show automysqlbackup" |
131 |
|
echo "e.g.: " |
132 |
|
echo "mysql55 -e \" GRANT EVENT,SELECT,LOCK TABLES ON *.* TO $MYSQLUSER@\'localhost\' \" " |
133 |
|
echo "mysql55 -u root -e \"SET PASSWORD FOR $MYSQLUSER@localhost = PASSWORD( \'$MYSQLPASS\' ) \" " |
134 |
|
echo " " |
135 |
|
echo "***********************************************************************" |
136 |
|
|
137 |
#protect the backup folder |
#protect the backup folder |
138 |
chmod -R 700 /root/backup/db |
chmod -R 700 /root/backup/db |
143 |
SMEDB=automysqlbackup |
SMEDB=automysqlbackup |
144 |
MYSQLUSER=backupuser |
MYSQLUSER=backupuser |
145 |
echo "=======================================================================" |
echo "=======================================================================" |
146 |
echo " delete mysql user and revoque all permissions" |
echo " " |
147 |
|
echo " delete mysql user and revoke all permissions" |
148 |
# This section deletes backupuser |
# This section deletes backupuser |
149 |
mysql -u root -e "REVOKE ALL PRIVILEGES ON *.* FROM '$MYSQLUSER'@'localhost';" |
mysql -u root -e "REVOKE ALL PRIVILEGES ON *.* FROM '$MYSQLUSER'@'localhost';" |
150 |
mysql -u root -e "DROP USER $MYSQLUSER@localhost;" |
mysql -u root -e "DROP USER $MYSQLUSER@localhost;" |
151 |
echo " " |
echo " " |
152 |
|
echo "Do that for each DB - e.g mysq55, mysql57 etc" |
153 |
|
echo " " |
154 |
# Delete custom template fragment |
# Delete custom template fragment |
155 |
echo " delete db configuration automysqlbackup" |
echo " delete db configuration automysqlbackup" |
156 |
|
echo " " |
157 |
echo "=======================================================================" |
echo "=======================================================================" |
158 |
|
|
159 |
/sbin/e-smith/config delete $SMEDB |
/sbin/e-smith/config delete $SMEDB |