NSVI(1p)
π NSVI(1p) β the transfer-edit-upload glow-up π
okay bestie, so this page lives in the User Contributed Perl Documentation section of your manual, and honestly? it's giving "I do one thing and I do it flawlessly." let me tell you everything about nsvi, no gatekeeping π
β¨ NAME β¨
nsvi β grab a zone, let you edit it, then yeet the edits back up to the server π¦
πΈ SYNOPSIS πΈ
nsvi [-01cCdDghvV] [-k keyfile] [-y [hmac:]name:key]
[-S mode|num] [-s server] <zone>
π« DESCRIPTION π«
so here's the whole vibe: nsvi fires off an AXFR request for the zone, then opens your editor so you can change literally whatever you want, and then β the moment of truth β it runs nsdiff | nsupdate to actually push those changes to the server. main character pipeline behavior, fr fr π
and here's the part that saves your life: the automatically-maintained DNSSEC records? they get stripped out of the zone before it even reaches your editor. so you're not staring at a wall of cryptographic nonsense. and you do not need to hand-adjust the SOA serial number. the tool handles that. you're welcome. periodt β¨
π OPTIONS π
ngl the division of labor here is cute: most nsvi options get passed along to nsdiff, and a few go to nsupdate. iykyk.
-hβ shows you this documentation. the classic "help me bestie" flag π-Vβ spills the version info.-vβ verbose mode. for when you want the full commentary track.-nβ interactive confirmation time. when you quit your editor, you'll get shown the changes, and then it asks you: make the update (press U or Y), edit again (press E or R), or bail (press literally any other key). it's giving "are you SURE, bestie" π-01cCdD,-S mode|numβ these get handed straight tonsdiff. for the deets, go read thensdiffmanual, because that's where the lore lives π-s server[#port]β transfer the zone from the server you name here, and send the update request to that exact same place. you can give a server host name or an IP address, optionally followed by a#and the port number. π
if you don't use the -s option, the zone gets transferred from localhost, and nsvi will use nsupdate -l to update the zone. no cap.
-gβ passed tonsupdateso it uses GSS-TSIG for UPDATE. π-k keyfileβ a TSIG key file, passed along todig,nsdiff, andnsupdate. the whole squad gets it.-y [hmac:]name:keyβ a literal TSIG key, also passed todig,nsdiff, andnsupdate. same energy, just inline π«Ά
π§ ENVIRONMENT π§
TMPDIRβ where temporary files want to hang out. πVISUAL,EDITORβ which editor to use.$VISUALgets first dibs if it's set, otherwise$EDITOR, otherwise...vi. that's the lineup, in that order, no exceptions π
π VERSION π
this is nsvi-1.85 β https://dotat.at/prog/nsdiff/
written by Tony Finch <fanf2@cam.ac.uk> <dot@dotat.at> at Cambridge University Information Services.
and the license situation is immaculate honestly: you may do anything with this. it has no warranty. literally do whatever, it's yours π (just don't come for them if it goes sideways bestie, that's the deal)
π ACKNOWLEDGMENTS π
shoutout to Tristan Le Guern for the -n option, and Mantas MikulΔnas for the -g option π«Ά and big ups to David McBride and Petr MenΕ‘Γk for providing useful feedback. community effort, we love to see it β¨
π₯ SEE ALSO π₯
nsdiff(1), nsupdate(1), dig(1).
and that's the whole page, bestie π this one came to you via perl v5.40.1, dated 2026-01-26 β ok love u, go transfer some zones, mwah ππ π¦
π¦ where this page comes from
- ubuntu resolute: nsdiff 1.85-2build1 Β· 0BSD OR MIT-0
- ubuntu stonking: nsdiff 1.85-2build1 Β· 0BSD OR MIT-0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms