[Midnightbsd-cvs] mports [15448] trunk/sysutils: Introduce more zfs related scripts for snapshots and replication.

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Mon Sep 16 21:04:25 EDT 2013


Revision: 15448
          http://svnweb.midnightbsd.org/mports/?rev=15448
Author:   laffer1
Date:     2013-09-16 21:04:24 -0400 (Mon, 16 Sep 2013)
Log Message:
-----------
Introduce more zfs related scripts for snapshots and replication.

Added Paths:
-----------
    trunk/sysutils/zfs-periodic/
    trunk/sysutils/zfs-periodic/Makefile
    trunk/sysutils/zfs-periodic/distinfo
    trunk/sysutils/zfs-periodic/pkg-descr
    trunk/sysutils/zfs-periodic/pkg-message
    trunk/sysutils/zfs-replicate/
    trunk/sysutils/zfs-replicate/Makefile
    trunk/sysutils/zfs-replicate/distinfo
    trunk/sysutils/zfs-replicate/pkg-descr
    trunk/sysutils/zfs-snapshot-clean/
    trunk/sysutils/zfs-snapshot-clean/Makefile
    trunk/sysutils/zfs-snapshot-clean/distinfo
    trunk/sysutils/zfs-snapshot-clean/pkg-descr
    trunk/sysutils/zfs-snapshot-mgmt/
    trunk/sysutils/zfs-snapshot-mgmt/Makefile
    trunk/sysutils/zfs-snapshot-mgmt/distinfo
    trunk/sysutils/zfs-snapshot-mgmt/files/
    trunk/sysutils/zfs-snapshot-mgmt/files/patch-zfs-snapshot-mgmt
    trunk/sysutils/zfs-snapshot-mgmt/files/pkg-message.in
    trunk/sysutils/zfs-snapshot-mgmt/pkg-deinstall
    trunk/sysutils/zfs-snapshot-mgmt/pkg-descr
    trunk/sysutils/zfs-snapshot-mgmt/pkg-plist

Added: trunk/sysutils/zfs-periodic/Makefile
===================================================================
--- trunk/sysutils/zfs-periodic/Makefile	                        (rev 0)
+++ trunk/sysutils/zfs-periodic/Makefile	2013-09-17 01:04:24 UTC (rev 15448)
@@ -0,0 +1,48 @@
+# $MidnightBSD$
+
+PORTNAME=	zfs-periodic
+PORTVERSION=	1.0.20130213
+CATEGORIES=	sysutils
+
+MAINTAINER=	ports at MidnightBSD.org
+COMMENT=	Simple way of maintaining zfs snapshots using the periodic system
+
+LICENSE=	unknown
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	ross
+GH_COMMIT=	9ffa662
+GH_TAGNAME=	${GH_COMMIT}
+
+NO_BUILD=	yes
+
+PERIODIC_DIRS=	etc/periodic/hourly etc/periodic/daily \
+		etc/periodic/weekly etc/periodic/monthly \
+		etc/periodic
+
+PERIODIC_FILES=	etc/periodic/hourly/000.zfs-snapshot \
+		etc/periodic/daily/000.zfs-snapshot \
+		etc/periodic/weekly/000.zfs-snapshot \
+		etc/periodic/monthly/000.zfs-snapshot
+
+PLIST_FILES=	${PERIODIC_FILES} bin/zfs-snapshot
+PLIST_DIRSTRY=	${PERIODIC_DIRS}
+
+post-patch:
+.for _file in ${PERIODIC_FILES}
+	@${REINPLACE_CMD} -e "s|/etc/periodic/zfs-snapshot|${PREFIX}/bin/zfs-snapshot|" \
+		${WRKSRC}/${_file}
+.endfor
+
+do-install:
+	@${INSTALL_SCRIPT} ${WRKSRC}/etc/periodic/zfs-snapshot ${PREFIX}/bin
+
+.for _dir in ${PERIODIC_DIRS}
+	@${MKDIR} ${PREFIX}/${_dir}
+.endfor
+
+.for _file in ${PERIODIC_FILES}
+	@${INSTALL_SCRIPT} ${WRKSRC}/${_file} ${PREFIX}/${_file}
+.endfor
+
+.include <bsd.port.mk>

Added: trunk/sysutils/zfs-periodic/distinfo
===================================================================
--- trunk/sysutils/zfs-periodic/distinfo	                        (rev 0)
+++ trunk/sysutils/zfs-periodic/distinfo	2013-09-17 01:04:24 UTC (rev 15448)
@@ -0,0 +1,2 @@
+SHA256 (zfs-periodic-1.0.20130213.tar.gz) = 58f2170979db5a97c895f4fb6e578078bad5dc3efa29dd6c818c98c1bface53f
+SIZE (zfs-periodic-1.0.20130213.tar.gz) = 2518

Added: trunk/sysutils/zfs-periodic/pkg-descr
===================================================================
--- trunk/sysutils/zfs-periodic/pkg-descr	                        (rev 0)
+++ trunk/sysutils/zfs-periodic/pkg-descr	2013-09-17 01:04:24 UTC (rev 15448)
@@ -0,0 +1,4 @@
+Scripts that uses the periodic system to create and manage zfs
+snapshots. Easily configured via /etc/periodic.conf
+
+WWW: http://www.neces.com/blog/technology/integrating-freebsd-zfs-and-periodic-snapshots-and-scrubs

Added: trunk/sysutils/zfs-periodic/pkg-message
===================================================================
--- trunk/sysutils/zfs-periodic/pkg-message	                        (rev 0)
+++ trunk/sysutils/zfs-periodic/pkg-message	2013-09-17 01:04:24 UTC (rev 15448)
@@ -0,0 +1,22 @@
+	 
+	In order to enable periodic snapshots you need
+	to add these lines to your /etc/periodic.conf
+
+	hourly_output="root"
+	hourly_show_success="NO"
+	hourly_show_info="YES"
+	hourly_show_badconfig="NO"
+	hourly_zfs_snapshot_enable="YES"
+	hourly_zfs_snapshot_pools="tank"
+	hourly_zfs_snapshot_keep=6
+	daily_zfs_snapshot_enable="YES"
+	daily_zfs_snapshot_pools="tank"
+	daily_zfs_snapshot_keep=7
+	weekly_zfs_snapshot_enable="YES"
+	weekly_zfs_snapshot_pools="tank"
+	weekly_zfs_snapshot_keep=5
+	monthly_zfs_snapshot_enable="YES"
+	monthly_zfs_scrub_enable="YES"
+	monthly_zfs_scrub_pools="tank"
+	monthly_zfs_snapshot_pools="tank"
+	monthly_zfs_snapshot_keep=2'

Added: trunk/sysutils/zfs-replicate/Makefile
===================================================================
--- trunk/sysutils/zfs-replicate/Makefile	                        (rev 0)
+++ trunk/sysutils/zfs-replicate/Makefile	2013-09-17 01:04:24 UTC (rev 15448)
@@ -0,0 +1,26 @@
+# $MidnightBSD$
+
+PORTNAME=	zfs-replicate
+PORTVERSION=	0.7
+CATEGORIES=	sysutils
+MASTER_SITES=	http://blogs.sun.com/constantin/resource/
+DISTNAME=	${PORTNAME}_v${PORTVERSION}
+
+MAINTAINER=	ports at MidnightBSD.org
+COMMENT=	ZFS Snapshot Replication Script
+
+LICENSE=	cddl
+
+NO_WRKSUBDIR=	yes
+NO_BUILD=	yes
+USE_BZIP2=	yes
+
+PLIST_FILES=	sbin/zfs-replicate
+
+do-patch:
+	@${REINPLACE_CMD} -e 's|/usr/sbin/zfs|/sbin/zfs|g' ${WRKSRC}/zfs-replicate_v${PORTVERSION}
+
+do-install:
+	${INSTALL_SCRIPT} ${WRKSRC}/zfs-replicate_v${PORTVERSION} ${PREFIX}/sbin/zfs-replicate
+
+.include <bsd.port.mk>

Added: trunk/sysutils/zfs-replicate/distinfo
===================================================================
--- trunk/sysutils/zfs-replicate/distinfo	                        (rev 0)
+++ trunk/sysutils/zfs-replicate/distinfo	2013-09-17 01:04:24 UTC (rev 15448)
@@ -0,0 +1,2 @@
+SHA256 (zfs-replicate_v0.7.tar.bz2) = 4ecd8ae205e90294bc5d0f2d56dfcc375499901f025e2e1926628c4e01ccd41e
+SIZE (zfs-replicate_v0.7.tar.bz2) = 4020

Added: trunk/sysutils/zfs-replicate/pkg-descr
===================================================================
--- trunk/sysutils/zfs-replicate/pkg-descr	                        (rev 0)
+++ trunk/sysutils/zfs-replicate/pkg-descr	2013-09-17 01:04:24 UTC (rev 15448)
@@ -0,0 +1,4 @@
+zfs-replicate makes migrating a few filesystems and many 
+snapshots to a new zpool more easier.
+
+WWW:	http://blogs.sun.com/constantin/entry/useful_zfs_snapshot_replicator_script

Added: trunk/sysutils/zfs-snapshot-clean/Makefile
===================================================================
--- trunk/sysutils/zfs-snapshot-clean/Makefile	                        (rev 0)
+++ trunk/sysutils/zfs-snapshot-clean/Makefile	2013-09-17 01:04:24 UTC (rev 15448)
@@ -0,0 +1,20 @@
+# $MidnightBSD$
+
+PORTNAME=	zfs-snapshot-clean
+PORTVERSION=	0.1.3
+CATEGORIES=	sysutils
+MASTER_SITES=	http://cloud.github.com/downloads/knu/${PORTNAME}/ \
+		ftp://ftp.iDaemons.org/pub/distfiles/
+
+MAINTAINER=	ports at MidnightBSD.org
+COMMENT=	A tool to sieve ZFS snapshots as per given spec a la 'pdumpfs-clean'
+
+LICENSE=	bsd2
+
+NO_BUILD=	yes
+PLIST_FILES=	sbin/${PORTNAME}
+
+do-install:
+	${INSTALL_SCRIPT} ${WRKSRC}/${PORTNAME} ${PREFIX}/sbin/
+
+.include <bsd.port.mk>

Added: trunk/sysutils/zfs-snapshot-clean/distinfo
===================================================================
--- trunk/sysutils/zfs-snapshot-clean/distinfo	                        (rev 0)
+++ trunk/sysutils/zfs-snapshot-clean/distinfo	2013-09-17 01:04:24 UTC (rev 15448)
@@ -0,0 +1,2 @@
+SHA256 (zfs-snapshot-clean-0.1.3.tar.gz) = ef080e0e07090bde4841736e8e4ed7a714fcd1f7bc4441139e8d065a61c671a5
+SIZE (zfs-snapshot-clean-0.1.3.tar.gz) = 2984

Added: trunk/sysutils/zfs-snapshot-clean/pkg-descr
===================================================================
--- trunk/sysutils/zfs-snapshot-clean/pkg-descr	                        (rev 0)
+++ trunk/sysutils/zfs-snapshot-clean/pkg-descr	2013-09-17 01:04:24 UTC (rev 15448)
@@ -0,0 +1,16 @@
+zfs-snapshot-clean
+------------------
+
+This is a tool to sieve ZFS snapshots as per given spec a la
+`pdumpfs-clean'.
+
+Typical usage is as follows:
+
+  for vol in zpool/home zpool/var; do
+    zfs snapshot "$vol@$(date +%Y-%m-%d)" && zfs-snapshot-clean "$vol"
+  done
+
+Run `zfs-snapshot-clean -h' for details.
+
+Author: Akinori MUSHA <knu at iDaemons.org>
+WWW:	http://github.com/knu/zfs-snapshot-clean

Added: trunk/sysutils/zfs-snapshot-mgmt/Makefile
===================================================================
--- trunk/sysutils/zfs-snapshot-mgmt/Makefile	                        (rev 0)
+++ trunk/sysutils/zfs-snapshot-mgmt/Makefile	2013-09-17 01:04:24 UTC (rev 15448)
@@ -0,0 +1,37 @@
+# $MidnightBSD$
+
+PORTNAME=	zfs-snapshot-mgmt
+PORTVERSION=	20090201
+CATEGORIES=	sysutils
+MASTER_SITES=	http://marcin.studio4plus.com/files/
+
+MAINTAINER=	ports at MidnightBSD.org
+COMMENT=	Automatic ZFS snapshot management tool
+
+LICENSE=	bsd2
+
+USE_RUBY=	yes
+RUBY_NO_BUILD_DEPENDS=	yes
+RUBY_SHEBANG_FILES=	zfs-snapshot-mgmt
+
+NO_BUILD=	yes
+MAN8=		zfs-snapshot-mgmt.8
+
+SUB_FILES=	pkg-message
+
+post-patch:	.SILENT
+	${FIND} ${WRKSRC} -type f -exec ${REINPLACE_CMD} \
+		-e 's|/usr/local|${PREFIX}|g' {} +
+
+do-install:
+	@${INSTALL_SCRIPT} ${WRKSRC}/${PORTNAME} ${PREFIX}/bin
+	@${INSTALL_MAN} ${WRKSRC}/${PORTNAME}.8 ${MANPREFIX}/man/man8
+	@${INSTALL_DATA} ${WRKSRC}/${PORTNAME}.conf.sample ${PREFIX}/etc
+
+post-install:
+	@if [ ! -f ${PREFIX}/etc/${PORTNAME}.conf ]; then \
+		${CP} -p ${PREFIX}/etc/${PORTNAME}.conf.sample ${PREFIX}/etc/${PORTNAME}.conf ; \
+	fi
+	@${CAT} ${PKGMESSAGE}
+
+.include <bsd.port.mk>

Added: trunk/sysutils/zfs-snapshot-mgmt/distinfo
===================================================================
--- trunk/sysutils/zfs-snapshot-mgmt/distinfo	                        (rev 0)
+++ trunk/sysutils/zfs-snapshot-mgmt/distinfo	2013-09-17 01:04:24 UTC (rev 15448)
@@ -0,0 +1,2 @@
+SHA256 (zfs-snapshot-mgmt-20090201.tar.gz) = 972f6eb51cc08dd2ab83491cb8942e310a9838f953edb7471df462446b59a8c4
+SIZE (zfs-snapshot-mgmt-20090201.tar.gz) = 4903

Added: trunk/sysutils/zfs-snapshot-mgmt/files/patch-zfs-snapshot-mgmt
===================================================================
--- trunk/sysutils/zfs-snapshot-mgmt/files/patch-zfs-snapshot-mgmt	                        (rev 0)
+++ trunk/sysutils/zfs-snapshot-mgmt/files/patch-zfs-snapshot-mgmt	2013-09-17 01:04:24 UTC (rev 15448)
@@ -0,0 +1,32 @@
+--- zfs-snapshot-mgmt~
++++ zfs-snapshot-mgmt
+@@ -154,7 +154,11 @@ class FSInfo
+   end
+ 
+   def pool
++    if name["/"]
+     name[/\A.*?\//].chop
++    else
++      name
++    end
+   end
+ 
+ private
+@@ -175,7 +179,7 @@ private
+ 
+ end
+ 
+-class Config
++class ZConfig
+   attr_reader :snapshot_prefix, :filesystems, :pools
+ 
+   def initialize(value)
+@@ -194,7 +198,7 @@ class Config
+ 
+ config_yaml = File.open(CONFIG_FILE_NAME).read(CONFIG_SIZE_MAX)
+ die "Config file too long" if config_yaml.nil?
+-config = Config.new(YAML::load(config_yaml))
++config = ZConfig.new(YAML::load(config_yaml))
+ 
+ now_minutes = Time.now.to_i / 60
+ 

Added: trunk/sysutils/zfs-snapshot-mgmt/files/pkg-message.in
===================================================================
--- trunk/sysutils/zfs-snapshot-mgmt/files/pkg-message.in	                        (rev 0)
+++ trunk/sysutils/zfs-snapshot-mgmt/files/pkg-message.in	2013-09-17 01:04:24 UTC (rev 15448)
@@ -0,0 +1,9 @@
+
+To actually turn on the automatic snapshots you have to do the following:
+
+1. Add an appropriate crontab entry, e.g.:
+
+    echo "*/5 * * * *	root   %%PREFIX%%/bin/zfs-snapshot-mgmt" >> /etc/crontab
+
+See zfs-snapshot-mgmt(8) manpage for more details.
+

Added: trunk/sysutils/zfs-snapshot-mgmt/pkg-deinstall
===================================================================
--- trunk/sysutils/zfs-snapshot-mgmt/pkg-deinstall	                        (rev 0)
+++ trunk/sysutils/zfs-snapshot-mgmt/pkg-deinstall	2013-09-17 01:04:24 UTC (rev 15448)
@@ -0,0 +1,12 @@
+#!/bin/sh
+# $FreeBSD$
+#
+
+if [ "$2" != "POST-DEINSTALL" ]; then
+    exit 0
+fi
+
+echo
+echo "Remember to remove zfs-snapshot-mgmt entry from cron configuration."
+echo -n "Otherwise the system will be constantly trying to call the deinstalled"
+echo " script."

Added: trunk/sysutils/zfs-snapshot-mgmt/pkg-descr
===================================================================
--- trunk/sysutils/zfs-snapshot-mgmt/pkg-descr	                        (rev 0)
+++ trunk/sysutils/zfs-snapshot-mgmt/pkg-descr	2013-09-17 01:04:24 UTC (rev 15448)
@@ -0,0 +1,3 @@
+A simple ruby script for automating creation and removal of ZFS snapshots.
+
+WWW: http://marcin.studio4plus.com/en/zfs-file-history/howto.html

Added: trunk/sysutils/zfs-snapshot-mgmt/pkg-plist
===================================================================
--- trunk/sysutils/zfs-snapshot-mgmt/pkg-plist	                        (rev 0)
+++ trunk/sysutils/zfs-snapshot-mgmt/pkg-plist	2013-09-17 01:04:24 UTC (rev 15448)
@@ -0,0 +1,4 @@
+bin/zfs-snapshot-mgmt
+ at unexec if cmp -s %D/etc/zfs-snapshot-mgmt.conf.sample %D/etc/zfs-snapshot-mgmt.conf; then rm -f %D/etc/zfs-snapshot-mgmt.conf; fi
+etc/zfs-snapshot-mgmt.conf.sample
+ at exec if [ ! -f %D/etc/zfs-snapshot-mgmt.conf ] ; then cp -p %D/%F %B/zfs-snapshot-mgmt.conf; fi



More information about the Midnightbsd-cvs mailing list