Re: [PLUG] Rsync to a NAS drive
For recursive mirroring common use would be rsync -a --delete --progress sourceDir destinationDir/ Your example: rsync -a --delete /media/jjj/Movies /media/jjj/Synology/ Good way to see if you want to use --delete might be to count the number of files to be updated and/or deleted with dry run '-n' and base on the number decide what to do: rsync -an --delete --progress sourceDir destinationDir/ This will print all files being deleted and updated. Your example: rsync -an --delete --progress /media/jjj/Movies /media/jjj/Synology/ In bash script you could do something like this: #!/bin/bash updateMax=100 deleteMax=50 filesToUpdate=$(rsync -an --delete /media/jjj/Movies /media/jjj/Synology/ | grep -v 'sending incremental file list' | wc -l) filesToDelete=$(rsync -an --delete /media/jjj/Movies /media/jjj/Synology/ | grep -v 'sending incremental file list' | grep '^deleting ' | wc -l) if (( $filesToUpdate < $updateMax )); then if (( $filesToDelete < $deleteMax )); then echo "INFO: Files being updated: $filesToUpdate" rsync -a --delete --progress /media/jjj/Movies /media/jjj/Synology/ else echo "WARNING: Too many files to delete $filesToDelete ... Updating only" rsync -a --progress /media/jjj/Movies /media/jjj/Synology/ fi else echo "ERROR: Too many files $filesToUpdate changed. Skipping update " fi exit 1 It you run it manually, you will see the output. If you run it as cron you could write it to a log or let cron will send you email with the output or ... I hope it helps, Tomas On Wed, 2016-07-13 at 11:24 -0700, John Jason Jordan wrote: > On Tue, 12 Jul 2016 17:10:39 -0700 > John Jason Jordan dijo: > > > And that brings up my immediate problem. Bear in mind that I want the > > destination to be a mirror of the source, hence my need for the > > --delete option. Unfortunately, it doesn't seem to be working. Here is > > my current command: > > > > rsync -rptog --delete /media/jjj/Movies/* /media/jjj/Synology > > > > The command executes fine, except that the --delete doesn't happen: > > I finally discovered the problem. The --delete option doesn't take > wildcards. But the * was actually unnecessary in the first place. After > deleting it the --delete option worked. > ___ > PLUG mailing list > PLUG@lists.pdxlinux.org > http://lists.pdxlinux.org/mailman/listinfo/plug ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
Re: [PLUG] Rsync to a NAS drive
On Tue, 12 Jul 2016 17:10:39 -0700 John Jason Jordan dijo: >And that brings up my immediate problem. Bear in mind that I want the >destination to be a mirror of the source, hence my need for the >--delete option. Unfortunately, it doesn't seem to be working. Here is >my current command: > > rsync -rptog --delete /media/jjj/Movies/* /media/jjj/Synology > >The command executes fine, except that the --delete doesn't happen: I finally discovered the problem. The --delete option doesn't take wildcards. But the * was actually unnecessary in the first place. After deleting it the --delete option worked. ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
Re: [PLUG] Rsync to a NAS drive
On Tue, 12 Jul 2016, John Jason Jordan wrote: > I intend to make a script to run at 2am daily. To guard against losing > the backup the script will first make sure that both source and > destination are mounted. I haven't figured out yet how to do that, but > it's in my plans. In the meantime I'm just running rsync manually. John, Have the first two lines of the script mount the partitions and the last two lines of the script umount each. Rich ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
Re: [PLUG] Rsync to a NAS drive
On Fri, 08 Jul 2016 23:55:16 -0700 Tomas Kuchta dijo: >if you add rsync --delete option then rsync will delete remote files >as you describe. For the safety of your files, maybe you should >consider enabling snapshots or do some safeguarding with your mirror >scripts. > >It would be unfortunate to loose all the NAS backup files just because >you accidentally deleted your USB drive or forgot to mount it or >something I intend to make a script to run at 2am daily. To guard against losing the backup the script will first make sure that both source and destination are mounted. I haven't figured out yet how to do that, but it's in my plans. In the meantime I'm just running rsync manually. And that brings up my immediate problem. Bear in mind that I want the destination to be a mirror of the source, hence my need for the --delete option. Unfortunately, it doesn't seem to be working. Here is my current command: rsync -rptog --delete /media/jjj/Movies/* /media/jjj/Synology The command executes fine, except that the --delete doesn't happen: rsync -rptog --delete /media/jjj/Movies/* /media/jjj/Synology (13) IO error encountered -- skipping file deletion rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.0] I've spent a couple hours googling on this and haven't come up with an explanation. Can someone enlighten me? ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
Re: [PLUG] Rsync to a NAS drive
On Sat, Jul 9, 2016 at 4:33 PM, John Jason Jordan wrote: > On Sat, 9 Jul 2016 13:39:54 -0700 > Bill Barry dijo: > > >With that knowledge the mount command would be closer to > > > >mount -t cifs //synology.local/synology/ /mnt --verbose -o > >user=username > > > >where I still don't know the username and /mnt should already exist or > >you need to create it. > > I don't want it in /mnt; I created a folder 'Synology' for it > in /media/jjj. And my username is jjj, so here is what I tried: > > jjj@Devil-Bonobo:/media/jjj$ sudo mount -t > cifs //synology.local/synology/ /media/jjj/Synology/ --verbose > -o user=jjj > mount: wrong fs type, bad option, bad superblock > on //synology.local/synology/, missing codepage or helper > program, or other error (for several filesystems (e.g. nfs, > cifs) you might need a /sbin/mount. helper program) In > some cases useful info is found in syslog - try dmesg | tail > or so > > Check to see if the cifs-utils package is installed. Bill ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
Re: [PLUG] Rsync to a NAS drive
On Sat, 9 Jul 2016 13:39:54 -0700 Bill Barry dijo: >With that knowledge the mount command would be closer to > >mount -t cifs //synology.local/synology/ /mnt --verbose -o >user=username > >where I still don't know the username and /mnt should already exist or >you need to create it. I don't want it in /mnt; I created a folder 'Synology' for it in /media/jjj. And my username is jjj, so here is what I tried: jjj@Devil-Bonobo:/media/jjj$ sudo mount -t cifs //synology.local/synology/ /media/jjj/Synology/ --verbose -o user=jjj mount: wrong fs type, bad option, bad superblock on //synology.local/synology/, missing codepage or helper program, or other error (for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount. helper program) In some cases useful info is found in syslog - try dmesg | tail or so Here is dmesg | tail: jjj@Devil-Bonobo:/media/jjj$ dmesg |tail [1712384.173773] FAT-fs (loop0): Can't find a valid FAT filesystem [1712384.173880] UDF-fs: warning (device loop0): udf_load_vrs: No VRS found [1712384.173883] UDF-fs: warning (device loop0): udf_fill_super: No partition found (2) [1712485.836659] EXT4-fs (loop0): VFS: Can't find ext4 filesystem [1712712.077709] EXT4-fs (loop0): VFS: Can't find ext4 filesystem [1714942.416884] FS-Cache: Netfs 'cifs' registered for caching [1714942.416936] Key type cifs.spnego registered [1714942.416941] Key type cifs.idmap registered [1722458.249354] Unable to determine destination address. [1722529.390614] Unable to determine destination address. Because of the destination address error messages I tried just /media/jjj, then just /media, and still got the destination error messages. But then I tried /mnt and the destination error messages from the mount command went away (although still generated in dmesg and syslog). What is up with that? Why can't I mount it where I want to mount it? And even trying /mnt I still got these error messages from the mount command: mount: wrong fs type, bad option, bad superblock on //synology.local/synology/, missing codepage or helper program, or other error (for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount. helper program) In some cases useful info is found in syslog - try dmesg | tail or so And dmesg still adds an error message about the destination, which is also echoed in syslog. (Syslog is easier to read because it gives you a human-readable date/time.) ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
Re: [PLUG] Rsync to a NAS drive
On Sat, 9 Jul 2016, John Jason Jordan wrote: > Then I decided to just move ahead to rsync and forget about cp, but I > couldn't get rsync to see the Synology. I gave up for the time being. John, You need to mount it so the kernel sees it. As suggested by others, create an entry for it in /etc/fstab and use the mount command. All done as root, of course. On my server I have a USB-connected external hard drive used for backups. In /etc/fstab is this entry: UUID=da596a77-2fb4-41ed-881c-a3f8bb0ab437 /media/hd0 auto defaults 0 0 You'll need to find the UUID for your NAS hard drive. And, you might want to add users after auto and a comma. I run backups from a script which is invoked daily at 00:30 from crontab. You'll probably want to put the mount command for your Synology system in the equivalent of Slackware's /etc/rc.d/rc.local which runs commands when the system boots; I've no idea how the ubuntus do this. Rich ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
Re: [PLUG] Rsync to a NAS drive
On Sat, Jul 9, 2016 at 1:39 PM, Bill Barry wrote: > > > On Sat, Jul 9, 2016 at 1:34 PM, John Jason Jordan > wrote: > >> >> >> I note that both rsync and mount are not seeing the Synology. It seems >> to me that my big problem is giving the command line the right syntax >> to specify it. It's IP address is 192.168.0.101 and Thunar shows it in >> the location bar as smb://synology.local/synology/, and in its shortcut >> > > With that knowledge the mount command would be closer to > > mount -t cifs //synology.local/synology/ /mnt --verbose -o user=username > > where I still don't know the username and /mnt should already exist or you > need to create it. > > And you should be root or use sudo. ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
Re: [PLUG] Rsync to a NAS drive
On Sat, Jul 9, 2016 at 1:34 PM, John Jason Jordan wrote: > > > I note that both rsync and mount are not seeing the Synology. It seems > to me that my big problem is giving the command line the right syntax > to specify it. It's IP address is 192.168.0.101 and Thunar shows it in > the location bar as smb://synology.local/synology/, and in its shortcut > With that knowledge the mount command would be closer to mount -t cifs //synology.local/synology/ /mnt --verbose -o user=username where I still don't know the username and /mnt should already exist or you need to create it. Bill ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
Re: [PLUG] Rsync to a NAS drive
On Sat, 09 Jul 2016 11:35:46 -0700 Tomas Kuchta dijo: >That (smb://..) will not work. you will need to mount your NAS >into empty real directory on the filesystem - either on command line >using mount (as root) or by adding it to /etc/fstab and letting the >system mount it at boot for you. > >I understand from google that Thunar is some GUI file manager which >interprets smb://. and create its own temporary SMB mount at run >time. This is unfortunately not usable by any command line commands as >they are not able to interpret smb://... URL the same way. Wow, a lot of suggestions. Then I decided to just move ahead to rsync and forget about cp, but I couldn't get rsync to see the Synology. I gave up for the time being. Back to the cp command, I decided to mount the Synology locally, but I couldn't get mount to see it either: jjj@Devil-Bonobo:/media/jjj/Movies$ sudo mount -t ext4 192.168.0.101 /media/jjj/Synology/ mount: special device 192.168.0.101 does not exist jjj@Devil-Bonobo:/media/jjj/Movies$ sudo mount -t ext4 smb://synology.local/synology/ /media/jjj/Synology/ mount: special device smb://synology.local/synology/ does notexist I also changed '-t ext4' to '-t cifs,' but got more error messages. Then I tried df -k, but it didn't see the Synology. Looking at the df man page I see why - apparently df looks only at the local filesystem. I note that both rsync and mount are not seeing the Synology. It seems to me that my big problem is giving the command line the right syntax to specify it. It's IP address is 192.168.0.101 and Thunar shows it in the location bar as smb://synology.local/synology/, and in its shortcut panel Thunar calls it '/synology/ on synology.local.' I've tried all of those, plus some variations that I thought of, but so far I haven't hit on the right combination. If rsync doesn't need it to be mounted locally, then I should just forget about cp and mounting it. But I still need the proper command line syntax for rsync to see it. ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
Re: [PLUG] Rsync to a NAS drive
On Sat, Jul 9, 2016 at 11:00 AM, John Jason Jordan wrote: > > I'm out of ideas. Suggestions? > If you want to use cp you will have to mount the filesystem. The regular mount command will do this. The filesystem type you want is called cifs. The man page for the requisite options is here man mount.cifs A typical command would look like mount -t cifs //server/share /mnt --verbose -o user=username Bill ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
Re: [PLUG] Rsync to a NAS drive
On Sat, 2016-07-09 at 11:59 -0700, Rich Shepard wrote: > On Sat, 9 Jul 2016, John Meissen wrote: > > > That's because 'cp' doesn't understand URL-style paths. 'cp' only deals > > with local filesystems. If you want to use 'cp' you'll have to mount the > > remote filesystem locally. > >Doesn't smb, like nfs, make the remote partitions accessible like local > partitions? It's been about a decade since I had nfs partitions on a > separate server, but it seems to me that I could cd, cp, and otherwise treat > them like those on the local workstation. NFS, sure, because they generally get mounted explicitly in /etc/fstab or similar. I think that's an extra step that is missing here *if* the original poster wants to use simple operations like 'cp' -- as noted, that only works on locally-mounted file systems. However, what the original poster really wants to do doesn't depend on opening that particular can of worms. He should concentrate on figuring out the right rsync command (shouldn't be that hard) or the right scp command (as also mentioned earlier). ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
Re: [PLUG] Rsync to a NAS drive
On Sat, 9 Jul 2016, John Meissen wrote: > That's because 'cp' doesn't understand URL-style paths. 'cp' only deals > with local filesystems. If you want to use 'cp' you'll have to mount the > remote filesystem locally. Doesn't smb, like nfs, make the remote partitions accessible like local partitions? It's been about a decade since I had nfs partitions on a separate server, but it seems to me that I could cd, cp, and otherwise treat them like those on the local workstation. Rich ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
Re: [PLUG] Rsync to a NAS drive
That (smb://..) will not work. you will need to mount your NAS into empty real directory on the filesystem - either on command line using mount (as root) or by adding it to /etc/fstab and letting the system mount it at boot for you. I understand from google that Thunar is some GUI file manager which interprets smb://. and create its own temporary SMB mount at run time. This is unfortunately not usable by any command line commands as they are not able to interpret smb://... URL the same way. I suggest that you look at using nfs again as it is easier to work with, without publishing your SMB password in /etc/fstab Here is an example of nfs mount line for /etc/fstab 192.168.1.10:/volume1 /nfs nfs4defaults,noauto,users 0 0 1. you need to: mkdir /nfs 2. with user you will be able to mount and umount as user on demand if your NAS is not guaranteed to be always available. 3. the mount command with the above in place: mount /nfs 4. umount as above: umount /nfs Best luck, Tomas On Saturday, July 09, 2016 11:00:17 AM John Jason Jordan wrote: > On Fri, 08 Jul 2016 23:55:16 -0700 > > Tomas Kuchta dijo: > >if you add rsync --delete option then rsync will delete remote files > >as you describe. For the safety of your files, maybe you should > >consider enabling snapshots or do some safeguarding with your mirror > >scripts. > > > >It would be unfortunate to loose all the NAS backup files just because > >you accidentally deleted your USB drive or forgot to mount it or > >something. > > I can see I'm going to have to spend a lot of time studying rsync. But > for starters I decided to use cp to see if I know how to specify the > destination. Thunar displays a window with files in the destination and > at the top of the window is a location bar. It says > 'smb://synology.local/synology/.' So from the command line in the > directory where the USB drive is mounted I did > > cp smb://synology.local/synology/ > cp: cannot create regular file ‘smb://synology.local/synology/’: No > such file or directory > > I also tried it without the trailing slash and again with a slash > in front and got the same results. Then I tried adding http:// in > front, but still no joy. For my last effort I specified the destination > by the ip address of the Synology (192.168.0.101), and this time I got > no error message, but it also failed to copy the file. However, when I > added a slash in front of the ip address I got 'cp: cannot create > regular file ‘/192.168.0.101’: Permission denied.' This reminds me that > before Thunar would show the contents of the Synology I had to log into > the share. > > I'm out of ideas. Suggestions? > ___ > PLUG mailing list > PLUG@lists.pdxlinux.org > http://lists.pdxlinux.org/mailman/listinfo/plug ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
Re: [PLUG] Rsync to a NAS drive
On Sat, 9 Jul 2016 11:00:17 -0700, in message 20160709110017.3280e2bf@Devil-Bonobo, John Jason Jordan wrote: > I can see I'm going to have to spend a lot of time studying rsync. But > for starters I decided to use cp to see if I know how to specify the > destination. Thunar displays a window with files in the destination > and at the top of the window is a location bar. It says > 'smb://synology.local/synology/.' So from the command line in the > directory where the USB drive is mounted I did > > cp smb://synology.local/synology/ > cp: cannot create regular file ‘smb://synology.local/synology/’: No > such file or directory > > I also tried it without the trailing slash and again with a slash > in front and got the same results. Then I tried adding http:// in > front, but still no joy. For my last effort I specified the > destination by the ip address of the Synology (192.168.0.101), and > this time I got no error message, but it also failed to copy the > file. However, when I added a slash in front of the ip address I got > 'cp: cannot create regular file ‘/192.168.0.101’: Permission denied.' > This reminds me that before Thunar would show the contents of the > Synology I had to log into the share. > > I'm out of ideas. Suggestions? cp does not understand remote copying, which is what you're trying to do here. You'll need to use scp, assuming that ssh is in the Synology's software suite. If it is, and you don't have them, you'll need to generate a set of keys. It's not hard, but I never remember how to do it. The man pages are complete, but rather dry. In fact, they're downright desiccated. Anyway, I hope this helps. --Dale -- Excess on occasion is exhilarating. It prevents moderation from acquiring the deadening effect of a habit. -- W. Somerset Maugham ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
Re: [PLUG] Rsync to a NAS drive
joh...@comcast.net said: > cp smb://synology.local/synology/ cp: cannot create regular > file âsmb://synology.local/synology/â: No such file or directory That's because 'cp' doesn't understand URL-style paths. 'cp' only deals with local filesystems. If you want to use 'cp' you'll have to mount the remote filesystem locally. ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
Re: [PLUG] Rsync to a NAS drive
On Sat, 2016-07-09 at 11:00 -0700, John Jason Jordan wrote: > cp smb://synology.local/synology/ > cp: cannot create regular file ‘smb://synology.local/synology/’: No > such file or directory > > I also tried it without the trailing slash and again with a slash > in front and got the same results. Then I tried adding http:// in > front, but still no joy. For my last effort I specified the destination > by the ip address of the Synology (192.168.0.101), and this time I got > no error message, but it also failed to copy the file. However, when I > added a slash in front of the ip address I got 'cp: cannot create > regular file ‘/192.168.0.101’: Permission denied.' This reminds me that > before Thunar would show the contents of the Synology I had to log into > the share. > > I'm out of ideas. Suggestions? > ___ > PLUG mailing list > PLUG@lists.pdxlinux.org > http://lists.pdxlinux.org/mailman/listinfo/plug I've never used Thunar or a NAS, but... the first thing I'd do is run the command df -k and see what it reported. ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
Re: [PLUG] Rsync to a NAS drive
On Fri, 08 Jul 2016 23:55:16 -0700 Tomas Kuchta dijo: >if you add rsync --delete option then rsync will delete remote files >as you describe. For the safety of your files, maybe you should >consider enabling snapshots or do some safeguarding with your mirror >scripts. > >It would be unfortunate to loose all the NAS backup files just because >you accidentally deleted your USB drive or forgot to mount it or >something. I can see I'm going to have to spend a lot of time studying rsync. But for starters I decided to use cp to see if I know how to specify the destination. Thunar displays a window with files in the destination and at the top of the window is a location bar. It says 'smb://synology.local/synology/.' So from the command line in the directory where the USB drive is mounted I did cp smb://synology.local/synology/ cp: cannot create regular file ‘smb://synology.local/synology/’: No such file or directory I also tried it without the trailing slash and again with a slash in front and got the same results. Then I tried adding http:// in front, but still no joy. For my last effort I specified the destination by the ip address of the Synology (192.168.0.101), and this time I got no error message, but it also failed to copy the file. However, when I added a slash in front of the ip address I got 'cp: cannot create regular file ‘/192.168.0.101’: Permission denied.' This reminds me that before Thunar would show the contents of the Synology I had to log into the share. I'm out of ideas. Suggestions? ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
Re: [PLUG] Rsync to a NAS drive
if you add rsync --delete option then rsync will delete remote files as you describe. For the safety of your files, maybe you should consider enabling snapshots or do some safeguarding with your mirror scripts. It would be unfortunate to loose all the NAS backup files just because you accidentally deleted your USB drive or forgot to mount it or something Hope it helps, T On Friday, July 08, 2016 11:46:24 PM John Jason Jordan wrote: > I have just successfully set up a Synology DiskStation NAS device with > one 6TB drive on my home ethernet. This was not a trivial matter, as > I had never done this before and I know little about networking. > > I also have a 5TB USB 3.0 drive attached to my laptop with presently > ~3TB of files on it. I wish to sync the USB drive to the NAS drive > nightly. During the day files are frequently added to and sometimes > deleted from the USB drive. My goal is for the NAS drive to be like a > mirror; if a file is deleted from the USB drive it should be deleted > from the NAS drive. I am thinking that rsync is the tool for this, but > maybe not. Rsync keeps old files even if deleted from the source > because it is designed for backups, but that is not what I want. > > Is rsync the right tool for this, or not? If not, what? Maybe just use > cp command with options not to copy files if they are already there? > Suggestions welcome. > ___ > PLUG mailing list > PLUG@lists.pdxlinux.org > http://lists.pdxlinux.org/mailman/listinfo/plug ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug
[PLUG] Rsync to a NAS drive
I have just successfully set up a Synology DiskStation NAS device with one 6TB drive on my home ethernet. This was not a trivial matter, as I had never done this before and I know little about networking. I also have a 5TB USB 3.0 drive attached to my laptop with presently ~3TB of files on it. I wish to sync the USB drive to the NAS drive nightly. During the day files are frequently added to and sometimes deleted from the USB drive. My goal is for the NAS drive to be like a mirror; if a file is deleted from the USB drive it should be deleted from the NAS drive. I am thinking that rsync is the tool for this, but maybe not. Rsync keeps old files even if deleted from the source because it is designed for backups, but that is not what I want. Is rsync the right tool for this, or not? If not, what? Maybe just use cp command with options not to copy files if they are already there? Suggestions welcome. ___ PLUG mailing list PLUG@lists.pdxlinux.org http://lists.pdxlinux.org/mailman/listinfo/plug