Date: Tue, 18 Oct 2016 15:05:31 +0100 From: Frank Shute <frank@woodcruft.co.uk> To: Valeri Galtsev <galtsev@kicp.uchicago.edu> Cc: Steve O'Hara-Smith <steve@sohara.org>, freebsd-questions@freebsd.org Subject: Re: pw add user slow Message-ID: <20161018140531.GA1080@lime.woodcruft.co.uk> In-Reply-To: <60719.69.209.239.247.1476794773.squirrel@cosmo.uchicago.edu> References: <fd1e578c-58ef-5098-9d89-c3db814d7af4@ifdnrg.com> <20161018074415.0f6575675db30d0b83d9b8ec@sohara.org> <60719.69.209.239.247.1476794773.squirrel@cosmo.uchicago.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Oct 18, 2016 at 07:46:13AM -0500, Valeri Galtsev wrote: > > > On Tue, October 18, 2016 1:44 am, Steve O'Hara-Smith wrote: > > On Mon, 17 Oct 2016 23:36:33 +0100 > > Paul Macdonald <paul@ifdnrg.com> wrote: > > > >> > >> Hi, > >> > >> I have to migrate an imap server, which uses about 6000 local accounts > >> for mail delivery > >> > >> I'm using a script that creates system acounts using: > >> > >> /usr/sbin/pw adduser $LOCAL_USER -u$UID-gGID-d $PATH -s/bin/false > >> > >> I'm finding this grows ever more slow, up to 10 seconds per account on a > >> SATA box , and on a test SSD box ( 20 acc's per second initially) even > >> that slows to about 1 account created per second. > >> > >> why does this slow down as more accounts are added? > > > > Because for each one it updates text files (passwd and > > master.passwd) and regenerates databases (pwd.db and spwd.db) from the > > text > > files. The fastest way to do this sort of thing is to directly update > > passwd and master.passwd and then run pwd_mkdb. > > It appears to be sufficient to only edit master.passwd; pwd_mkdb will > re-generate passwd file from master.passwd. > There's a tool for that: vipw(8) It uses $EDITOR if set, vi as default. If using vi/vim then fire up vipw and: :r!myscript will stick stdout from myscript into the buffer where the cursor is. Then: :wq and vipw will write it if it's conformant and then call pwd_mkdb to do it's business. The OP will also have to edit /etc/group to add his users to the appropriate group(s). Doesn't the imap server have an option for using a relational database rather than filling passwd up? I'd go for that option if it does. Regards, -- Frank https://woodcruft.co.uk/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20161018140531.GA1080>