--- rpms/smeserver-automysqlbackup/contribs9/smeserver-automysqlbackup.spec 2014/06/17 19:01:17 1.1 +++ rpms/smeserver-automysqlbackup/contribs9/smeserver-automysqlbackup.spec 2018/11/27 14:00:37 1.7 @@ -1,9 +1,9 @@ %define name smeserver-automysqlbackup -%define version 3.0.RC7 -%define release 1 +%define version 3.0.RC6 +%define release 11 %define rpmver 3.0.RC6 - +epoch: 2 Summary: automysqlbackup is a script to backup your msql database on sme8 Name: %{name} Version: %{version} @@ -14,13 +14,17 @@ Source: %{name}-%{version}.t URL: http://sourceforge.net/projects/automysqlbackup/ BuildRoot: /var/tmp/%{name}-%{version}-%{release}-buildroot BuildArchitectures: noarch -Requires: e-smith-base, e-smith-release >= 8 +Requires: e-smith-base, e-smith-release >= 9 Requires: pax Requires: automysqlbackup BuildRequires: e-smith-devtools +Patch0: smeserver-automysqlbackup-AdjustableCronJob.patch +Patch1: smeserver-automysqlbackup-enhanced-templates.patch +Patch2: smeserver-automysqlbackup-fix-runmysql.patch +Patch3: smeserver-automysqlbackup-update-permission-change.patch %description -This RPM is an unofficial addon for the SME Server 8.x. +This RPM is an unofficial addon for the SME Server 9.x. The target audience is the Linux/E-smith administrator who wants to backup their mysql databases with an automatic way. This script is based on automysqlbackup V3.0 @@ -28,8 +32,30 @@ This script is based on automysqlbackup %changelog -* Mon Jun 16 2014 JP Pialasse 3.0.RC7-1.sme -- initial import to SME9 contribs +* Mon Nov 26 2018 John Crisp 3.0.RC6-11.sme +- fix runmysqlscript to allow for change in Backupdir key [SME: 10655] + +* Mon Nov 26 2018 John Crisp 3.0.RC6-10.sme +- fix runmysqlbackup to allow for new databases [SME: 10654] + +* Fri Jul 06 2018 John Crisp 3.0.RC6-9.sme +- Template configuration files +- run automysqlbackup per conf directly from cron rather than runmysqlbackup +- Add extra DB keys for mysql53, mysql55, mysql57 + +* Sun Apr 02 2017 stephane de Labrusse 3.0.RC6-8.sme +- Added smeserver-automysqlbackup-AdjustableCronJob.patch +- The time to run the Job is adjustable + +* Wed Sep 16 2015 stephane de Labrusse 3.0.RC6-6.sme +- Added 'epoch: 2' + +* Sat Aug 22 2015 stephane de Labrusse 3.0.RC6-5.sme +- Initial release to contribs9 + +* Sun Aug 17 2014 Stephane de Labrusse 3.0.RC6-4 +- added my own patch against the --events warning +--Warning: Skipping the data of table mysql.event. Specify the --events option explicitly. * Sun Oct 27 2013 Stephane de Labrusse 3.0.RC6.3 - split the contrib in two versions smeserver-automysqlbackup and automysqlbackup @@ -42,14 +68,21 @@ This script is based on automysqlbackup rm -rf $RPM_BUILD_ROOT %setup +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 %build +perl createlinks %install /bin/rm -rf $RPM_BUILD_ROOT -(/usr/bin/find . -depth -print | /bin/cpio -dump $RPM_BUILD_ROOT) +(cd root ;/usr/bin/find . -depth -print | /bin/cpio -dump $RPM_BUILD_ROOT) /bin/rm -f %{name}-%{version}-filelist -/sbin/e-smith/genfilelist $RPM_BUILD_ROOT > %{name}-%{version}-filelist +/sbin/e-smith/genfilelist $RPM_BUILD_ROOT \ +--file /sbin/e-smith/runmysqlbackup 'attr(0750,root,root)' \ +> %{name}-%{version}-filelist %files -f %{name}-%{version}-filelist @@ -66,49 +99,25 @@ SMEDB=automysqlbackup MYSQLUSER=backupuser # Expland template /etc/e-smith/events/actions/initialize-default-databases +/sbin/e-smith/expand-template /etc/cron.d/runmysqlbackup -echo "=========================================================================================" -echo " Your Databases are saved in /root/backup/db " -echo " only Root can access to these folders" -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 "=========================================================================================" - - - +echo "***********************************************************************" +echo " " +echo "Creating backup user for default mysql53 database" #create backupuser and give rights MYSQLPASS=$(/sbin/e-smith/config getprop $SMEDB DbPassword) -mysql -e " GRANT SELECT,LOCK TABLES ON *.* TO $MYSQLUSER@'localhost' " +mysql -e " GRANT EVENT,SELECT,LOCK TABLES ON *.* TO $MYSQLUSER@'localhost' " mysql -u root -e "SET PASSWORD FOR $MYSQLUSER@localhost = PASSWORD( '$MYSQLPASS' ) " mysqladmin flush-privileges /etc/rc.d/init.d/mysql.init start +echo "done" +echo "*** If you add mysql55/mysql57 you must add a backup user ***" +echo "You can use the password from config show automysqlbackup" +echo "e.g.: " +echo "mysql55 -e \" GRANT EVENT,SELECT,LOCK TABLES ON *.* TO $MYSQLUSER@\'localhost\' \" " +echo "mysql55 -u root -e \"SET PASSWORD FOR $MYSQLUSER@localhost = PASSWORD( \'$MYSQLPASS\' ) \" " +echo " " +echo "***********************************************************************" #protect the backup folder chmod -R 700 /root/backup/db @@ -119,13 +128,17 @@ if [ $1 = 0 ] ; then SMEDB=automysqlbackup MYSQLUSER=backupuser echo "=======================================================================" -echo " delete mysql user and revoque all permissions" +echo " " +echo " delete mysql user and revoke all permissions" # This section deletes backupuser mysql -u root -e "REVOKE ALL PRIVILEGES ON *.* FROM '$MYSQLUSER'@'localhost';" mysql -u root -e "DROP USER $MYSQLUSER@localhost;" echo " " +echo "Do that for each DB - e.g mysq55, mysql57 etc" +echo " " # Delete custom template fragment echo " delete db configuration automysqlbackup" +echo " " echo "=======================================================================" /sbin/e-smith/config delete $SMEDB