Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Plugin] Mover Tuning

Featured Replies

3 hours ago, cbr600ds2 said:

  I thought it would be under

 

image.thumb.png.cda75295517b64a4bd307504f201c673.png

  • Replies 3.6k
  • Views 547.4k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • hugenbdd
    hugenbdd

    New Version 07-03-2023   HUGE thanks/Shout-out to @Swarles for the help with updating code fixes and adding a great new feature.  You can now have some customization per share.  It's great t

  • How to ignore a SINGLE file 1.) Find the path of the file you wish to ignore.     ls -ltr /mnt/cache/Download/complete/test.txt         root@Tower:/# ls -ltr /mnt/cache/Download/complete/test

  • Hi all, I made a new version of the plugin. This fork replaces @hugenbdd's plugin which is not maintained anymore and will land in community applications if your feedbacks are positive.  

Posted Images

4 hours ago, Masterwishx said:

Fixed issue with wrong thresholds for cache:yes , you can check it by download and test :  https://github.com/masterwishx/ca.mover.tuning/blob/dev-new-fixes-4/source/ca.mover.tuning/usr/local/emhttp/plugins/ca.mover.tuning/age_mover

 

Thanks for working on this fix.

 

I'd love to help test it, but I'm not sure how to install the updated plugin from the link you provided. Again, sorry for my ignorance.

5 hours ago, Ichthus said:

I'd love to help test it, but I'm not sure how to install the updated plugin from the link you provided. Again, sorry for my ignorance.

You can download age_mover file and copy to /usr/local/... and `chmod 755 age_mover` or you can wait I will push new version today I hope... 

8 hours ago, Ichthus said:

I'd love to help test it, but I'm not sure how to install the updated plugin from the link you provided. Again, sorry for my ignorance.

download the attached file, place it somewhere on your unraid server, sample here, /mnt/user/system/mover/

 

then open terminal and enter as followed (replace 2nd entry path described above whereever you placed it)

not the ... lines ;) just infos

 

cd /usr/local/emhttp/plugins/ca.mover.tuning/
ls -la
... check before
cp /mnt/user/system/mover/age_mover .
ls -la
... check after

 

yes, the dot in the end of 2nd line is correct ;)

 

that was it ;)

 

before, after ... different size

 

before
-rwxr-xr-x 1 root root 72455 Mar 11 10:14 age_mover

after
-rwxr-xr-x 1 root root 73960 Mar 20 09:37 age_mover

 

age_mover

Does it still hold true that if I want to disable mover on a schedule and just trigger it myself, I need to call /usr/local/sbin/mover.old start?

I'm asking because I trigger the mover manually as a post-script for my backups. 
However, before disabling it running on a schedule, when I triggered the mover script it would log a bunch of settings, including the test mode being enabled etc.

Now when I call mover.old, nothing happens besides it telling me to use start/stop arguments.
So that has me a little confused and I just want to make sure I'm using it correctly.

4 hours ago, Schaka said:

Does it still hold true that if I want to disable mover on a schedule and just trigger it myself, I need to call /usr/local/sbin/mover.old start?

I'm asking because I trigger the mover manually as a post-script for my backups. 
However, before disabling it running on a schedule, when I triggered the mover script it would log a bunch of settings, including the test mode being enabled etc.

Now when I call mover.old, nothing happens besides it telling me to use start/stop arguments.
So that has me a little confused and I just want to make sure I'm using it correctly.

Can we request a feature to disable the mover schedule ONLY, but keep all mover tuner settings/filters intact so we can 'manually' run the mover with scripts and still have it follow our thresholds?

On 3/18/2025 at 12:33 PM, alturismo said:

may set a override like you wish it (main setup) and test then please.

Finally I got it working with this suggestion. Some key takeaways (for my set up) :

  1. Mover tuning plugin only work for me if I set BOTH global and share-specific settings. Both set of settings need to match.
  2. This has something to do with age based move when set to Auto. When I set it to specific number of days, mover works with Global settings alone.
26 minutes ago, styagi said:

Finally I got it working with this suggestion. Some key takeaways (for my set up) :

Check the new version 

1 hour ago, Triiiple said:

Can we request a feature to disable the mover schedule ONLY, but keep all mover tuner settings/filters intact so we can 'manually' run the mover with scripts and still have it follow our thresholds?

 

you can already : 

 

Disable Mover running on a schedule =yes 

then run `/usr/local/emhttp/plugins/ca.mover.tuning/age_mover start`

Just got this email after a reboot, any thoughts/suggestions?

Event: Unraid Status
Subject: Mover Tuning Notification
Description: Fatal error: cache not present, or only cache present, and less than 2 pools set up.
Importance: warning

 

image.thumb.png.17f6c332e8f1081ad1bbc78bb1fa7b18.png

1 hour ago, mihcox said:

Fatal error: cache not present, or only cache present, and less than 2 pools set up.

This mean you don't have user0 as diskX, only cache and one pool only

16 minutes ago, Masterwishx said:

This mean you don't have user0 as diskX, only cache and one pool only

Does this mean I should effectively uninstall the plugin?

54 minutes ago, mihcox said:

Does this mean I should effectively uninstall the plugin?

If you have cache:only for shares you don't need to move data then? 

I'm on 2025.03.20a, it seems unable to move files with filenames containing a "$". It throws an error : "Error: Invalid filename path"

30 minutes ago, kyis said:

I'm on 2025.03.20a, it seems unable to move files with filenames containing a "$". It throws an error : "Error: Invalid filename path"

well, this is more or less a invalid ... ;)

 

if you want to keep such things ...

 

there is a changelog

there is a help section

 

image.thumb.png.01e462b204da025308cf0fa7e1be65a4.png

 

 

Hi all,

 

Loads of notifications this morning. Whilst I do agree with the attack preventation, I think it could use a little finessing to better detect what would be a variable for instance.

 

Some hits I got this morning include:

Procreate Resources/Add-Ons/Icon-Kit/Outlines White/$-OutlinesWhite.png
Procreate Resources/Add-Ons/Icon-Kit/Solid Black/$-SolidBlack.png
Laptop backup 2/~$ Doc about Election.rtf

 

Now, correct me if I'm wrong, but I don't think these can be variables, since they need to start with a letter or number I think?

 

Anyway, thought would mention it.

Thanks for the plugin!

 

I'm happy to disable the filename checking, since am pretty confident I'm not under attack, or at least my server isn't at the moment :D

 

Cheers!

On 3/20/2025 at 4:02 AM, Masterwishx said:

That's will be really amazing

We've been asking for even just the most basic mover tuning features to be worked in. I know Limetech like to keep the base OS as simple as possible for many, many reasons (native ZFS and WIFI are huge steps for limetech!) but this is so essential to a good high performance server setup I feel it justifies the complexity.

 

 

many features started out as plugins or addons, even the webui started as a plugin.

 

Hmm, I disabled the filename validation, but just got spammed to death again!

 

Edit: Ahh, it' s still running from this morning still!

 

 

On a side note, I have noticed some very weird notifications from the plugin, where says it moved hundreds of thousands of files, and more terabytes than are possible from the cache. Bit odd.

 

Edit2: Just finished. Here:

image.png.d9783dbaaba01b2f3e3e74c2f29769b0.png

 

My cache is a pool consisting of two 1TB NVMe drives, with 1TB of storage, so what gives here?

 

Edited by SudoPacman
Adding screenshot of completion message

Is this expected with file verification on?

 

Mar 21 09:30:23 unraid move: Error: Invalid characters in filename: '*.sh'
Mar 21 09:30:23 unraid move: Error: Invalid filename path: 'syslog/**/*.sh'
Mar 21 09:30:23 unraid move: ------------------------------------------------------------------- Cleaning up -----------------------------------------------------------------
Mar 21 09:30:23 unraid move: Restoring original turbo write mode Turbo writes (Reconstruct)
Mar 21 09:30:23 unraid kernel: mdcmd (253): set md_write_method 1
Mar 21 09:30:23 unraid kernel: 
Mar 21 09:30:23 unraid move: Launching after script: /mnt/cache/postmover.sh

50 minutes ago, feinhorn said:

Is this expected with file verification on?

 

 

should be self explaining ;)

 

    ## Check filename length
    if [[ ${#filename} -gt 255 ]]; then
        mvlogger "Error: Filename too long: '$filename'"
        return 1
    fi

    ## Check for invalid characters
    if [[ "$filename" =~ [\$\/\<\>\:\"\|\?\*] ]]; then
        mvlogger "Error: Invalid characters in filename: '$filename'"
        return 1
    fi

    ## Prevent path traversal
    if [[ "$filename" == *"../"* ]]; then
        mvlogger "Error: Path traversal attempt detected: '$filename'"
        return 1
    fi

 

3 hours ago, SudoPacman said:

, I have noticed some very weird notifications from the plugin

Check the log file it's what you have in it. 

4 hours ago, SudoPacman said:

more terabytes than are possible from the cache. Bit odd.

It's also count array files if moved/synced

On 3/19/2025 at 3:57 PM, Masterwishx said:

 

image.thumb.png.cda75295517b64a4bd307504f201c673.png

 

oh I don't even have that- I'll check it out.  Thanks!  

Hi everyone,

I wanted to use mover tuning mostly to keep 3 folders always on the cache SSD.

It's possible to set up that it will sync only those 3 folder and that it will move all the others?

I would like the document folder to always be on the SSD so that read times are improved, but the Download folder can be moved to array at night for example

On 10/28/2022 at 3:09 AM, hugenbdd said:

How to ignore a SINGLE file

1.) Find the path of the file you wish to ignore.
    ls -ltr /mnt/cache/Download/complete/test.txt
        root@Tower:/# ls -ltr /mnt/cache/Download/complete/test.txt
        -rwxrwxrwx 1 root root 14 Oct 27 11:32 /mnt/cache/Download/complete/test.txt*
2.) Copy the complete path used.  
    /mnt/cache/Download/complete/test.txt
3.) Create a text file to hold the ignore list.
    vi /mnt/user/appdata/mover-ignore/mover_ignore.txt
4.) Add a file path to the mover_ignore.txt file
    While still in vi press the i button on your keyboard.
    Right click mouse.
5.) Exit and Save
    ESC key, then : key, then w key, then q key
6.) Verify file was saved
    cat /mnt/user/appdata/mover-ignore/mover_ignore.txt
    "This should print out 1 line you just entered into the mover_ignore.txt"
7.) Verify the find command results does not contain the ignored file
    find "/mnt/cache/Download" -depth | grep -vFf '/mnt/user/appdata/mover-ignore/mover_ignore.txt'
    /mnt/cache/Download is the share name on the cache. (Note, cache name could be different if you have multiple caches or changed the default name)

 

How to ignore Muliple files.

1.) Find the paths of the files you wish to ignore
    ls -ltr /mnt/cache/Download/complete/test.txt
    ls -ltr /mnt/cache/Download/complete/Second_File.txt
2.) Copy the complete paths used to a separate notepad or text file.
    /mnt/cache/Download/complete/test.txt
    /mnt/cache/Download/complete/Second_File.txt
3.) Copy the paths in your notepad to the clip board. 
    Select, the right click copy
4.) Create a text file to hold the ignore list.
    vi /mnt/user/appdata/mover-ignore/mover_ignore.txt
5.) Add the file paths to the mover_ignore.txt file
    While still in vi press the i button on your keyboard.
    Right click mouse.

    You should now have two file paths in the file.
6.) Exit and Save
    ESC key, then : key, then w key, then q key
7.) Verify file was saved
    cat /mnt/user/appdata/mover-ignore/mover_ignore.txt
    "This should print out 2 lines you just entered into the mover_ignore.txt"
8.) Verify the find command results does not contain the ignored files
    find "/mnt/cache/Download" -depth | grep -vFf '/mnt/user/appdata/mover-ignore/mover_ignore.txt'
    /mnt/cache/Download is the share name on the cache. (Note, cache name could be different if you have multiple caches or changed the default name)


How to Ignore a directory
instead of a file path, use a directory path.  no * or / at the end.
This may cause issues if you have other files or directories named the similar but with extra text.

/mnt/cache/Download/complete

*Note /mnt/cache/Download/complete  will also ignore /mnt/cache/Download/complete-old 

 

 

*I use vi in this example instead of creating a file in windows, as windows can add ^m characters to the end of the line, causing issues in Linux.   This would not be an issue if dos2unix was included in unRAID.

 

**Basic vi commands

https://www.cs.colostate.edu/helpdocs/vi.html

So I am trying to ignore a directory that has spaces in its name would I put the path in the .txt like "/mnt/arraycache/media/TV Shows/The Boys"   or  /mnt/arraycache/media/TV Shows/The Boys 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.