I have a ubuntu server running Serviio as a DLNA media server.

pretty much the only other thing the server is doing is checking for new media on a remote server. I am running this script every minute with cron.


if [ ! -e $lockfile ]; then
   trap "rm -f $lockfile; exit" INT TERM EXIT
   touch $lockfile
   nice -n 20 ionice -c 3 rsync -axvmP --rsh="ssh -c arcfour" --progress --delete --include='*/' --include='*.mkv' --include='*.mp4' --include='*.avi' --exclude='*' --log-file='/home/vince/log/sync' ***@***:/home/vince/media/ "$DestDir"
   rm $lockfile
   trap - INT TERM EXIT
   [ $? -eq 0 ] && logger 'RSYNC sync completed successfully' || logger 'RSYNC sync Failed'
   echo "script already running"

you see i have used a weaker cipher, nice and ionice but if rsync finds a nice 6GB file for example, and i am streaming media at the time it will cause the playback to buffer and jump.

Would it help if i moved this script to the remote server and pushed the data out instead of pulling it? or does it make no diff?

any other suggestions?


If the problem is one of bandwidth, then check out rsync's options like:

          This  option  allows  you  to specify a maximum transfer rate in
          kilobytes per second for the data the daemon sends.  The  client
          can still specify a smaller --bwlimit value, but their requested
          value will be rounded down if they try to exceed  it.   See  the
          client version of this option (above) for some extra details.

Depending on what the cause of the hiccup is, perhaps:

   -z, --compress
          With this option, rsync compresses the file data as it  is  sent
          to  the  destination  machine,  which reduces the amount of data
          being transmitted â something that is useful over a slow connecâ

          Note  that  this  option  typically  achieves better compression
          ratios than can be achieved by using a compressing remote  shell
          or  a  compressing  transport  because it takes advantage of the
          implicit information in the matching data blocks  that  are  not
          explicitly sent over the connection.

          See the --skip-compress option for the default list of file sufâ
          fixes that will not be compressed.

          Explicitly set the compression level  to  use  (see  --compress)
          instead  of  letting it default.  If NUM is non-zero, the --comâ
          press option is implied.

          Override the list of file suffixes that will not be  compressed.
          The  LIST  should be one or more file suffixes (without the dot)
          separated by slashes (/).

          You may specify an empty string to indicate that no file  should
          be skipped.

          Simple  character-class matching is supported: each must consist
          of a list of letters inside the square brackets (e.g. no special
          classes, such as â[:alpha:]â

          The  characters  asterisk (*) and question-mark (?) have no speâ
          cial meaning.

          Here's an example that specifies 6 suffixes to skip (since 1  of
          the 5 rules matches 2 suffixes):


          The default list of suffixes that will not be compressed is this
          (several of these are newly added for 3.0.0):


          This list will be replaced by your --skip-compress list  in  all
          but  one  situation:  a  copy  from a daemon rsync will add your
          skipped suffixes to its list of non-compressing files  (and  its
          list may be configured to a different default).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.