Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Oct 2016 15:17:07 +0100
From:      Paul Macdonald <paul@ifdnrg.com>
To:        freebsd-questions@freebsd.org
Subject:   Re: pw add user slow
Message-ID:  <b0a231f1-dcf4-a59e-8870-ea417a49685d@ifdnrg.com>
In-Reply-To: <20161018140531.GA1080@lime.woodcruft.co.uk>
References:  <fd1e578c-58ef-5098-9d89-c3db814d7af4@ifdnrg.com> <20161018074415.0f6575675db30d0b83d9b8ec@sohara.org> <60719.69.209.239.247.1476794773.squirrel@cosmo.uchicago.edu> <20161018140531.GA1080@lime.woodcruft.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help


On 18/10/2016 15:05, Frank Shute wrote:
> 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,
>
manually writing to the master passwd and running pwd_mkdb was a lot 
quicker, thanks

at 10 seconds per account, 6500 would take a long time... (16hrs!)

the system accounts are for sendmail delivery to mailboxes, possibly a 
good time to take a look at exim/postfix.

thanks
Paul

-- 
-------------------------
Paul Macdonald
IFDNRG Ltd
Web and video hosting
-------------------------
t: 0131 5548070
m: 07970339546
e: paul@ifdnrg.com
w: http://www.ifdnrg.com
-------------------------
IFDNRG
40 Maritime Street
Edinburgh
EH6 6SA
----------------------------------------------------

Virtual Servers from £50.00pm
High specification Dedicated Servers from £150.00pm

----------------------------------------------------




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b0a231f1-dcf4-a59e-8870-ea417a49685d>