NAS Backup Skipping Files Silently – Fix It Now
Your NAS backup job might skip files without telling you. I'll show you the top 3 reasons and how to fix each one fast.
1. File Permissions or Ownership Blocks the Read
This is the biggest reason I see. Your backup job tries to read a file, but the backup user doesn't have read permission. The NAS just skips it. No error, no log entry by default. This happens a lot when you copy files from a Windows PC to a NAS share and then try to back up that share with rsync or Hyper Backup.
Real-world trigger: You copied a folder from your work laptop (NTFS with restricted ACLs) to a Synology NAS shared folder. The backup user is 'admin' but the copied files still have old Windows permissions. The admin user can list the folder but can't read the file contents. Backup fails silently.
How to check and fix it:
- Log into your NAS as an admin.
- Go to the folder with the skipped files. Right-click (or use File Station) and check Properties > Permission.
- Make sure the backup user (like 'backupuser' or 'admin') has Read permission on every file. Often it's missing on files copied from external drives.
- If you have many files, run a recursive permission fix. On Synology DSM 7.x, do this:
That adds read access for all users. Run it from the NAS command line via SSH.sudo chmod -R a+r /volume1/sharedfolder/ - After that, rerun the backup job. You should see the skipped files now included.
What to expect: After running chmod, every file in that folder will be readable by any user. If you have sensitive data, be more specific: sudo chmod -R u+r /volume1/sharedfolder/ only gives read to the owner. Adjust to your needs.
2. File Paths That Are Too Long
Windows and NAS systems have different path length limits. Windows max path is 260 characters (by default). Some backup tools like rsync or Synology Hyper Backup can't handle paths longer than 255 characters. If a file path goes over that, the backup just skips it. No warning, no log.
Real-world trigger: You've got deep nested folders. Like this: sharedfolder/Projects/Client_A/2024/Reports/Financials/Quarterly/Q3/September/Third Revision Final.xlsx. That path is easily over 200 characters. Toss in a long file name and you hit the limit.
How to check and fix it:
- Run this command from the NAS shell to find paths over 200 characters:
This creates a file listing all long paths.find /volume1/sharedfolder -type f | awk 'length($0)>200' > longpaths.txt - Open
longpaths.txtand look at the filenames. You'll see the problem. - Shorten the folder names. Use abbreviations: 'Projects' becomes 'Proj', 'Quarterly' becomes 'Qtrly'. Rename deep folders to keep total path under 200 characters.
- For backup-only, you can also enable long path support in rsync if you're using that. Add this option to your rsync command:
But this doesn't always work. Renaming is safer.--no-relative --files-from=/path/to/filelist - Rerun the backup. Check the log to see if the skipped files now appear.
What to expect: The find command might take a few minutes on a large NAS. Be patient. After renaming folders, the backup should include those files.
3. Rsync Exclude Patterns or Hidden Files Being Skipped
If you're using rsync to back up your NAS to another NAS or to a USB drive, you might have an exclude pattern that's too aggressive. Also, rsync by default skips files starting with a dot (hidden files) unless you tell it not to.
Real-world trigger: You set up a backup script to copy everything from /volume1/data to a USB drive. You used rsync -av but forgot that rsync doesn't copy hidden files unless you add .* or --include='.*'. So all .config, .hidden files get skipped. You never notice because the log only shows what was transferred, not what was skipped.
How to check and fix it:
- Check your rsync command. If it looks like
rsync -av /source/ /dest/, you're missing hidden files. - To include hidden files, change it to:
Thersync -av --include='.*' /source/ /dest/--include='.*'tells rsync to also copy files starting with a dot. - Also check for any
--excludelines in your script. Maybe you have--exclude='*.tmp'which is fine, but if you have--exclude='*'that's too broad. Look for patterns that might block normal files. - Run a test with
--dry-runto see what would be copied without actually copying:
Compare the output with a full list of files in the source. Any missing files are being skipped.rsync -av --dry-run --include='.*' /source/ /dest/ - Update your backup script permanently. Rerun the backup and check the log for any new files.
What to expect: After adding --include='.*', hidden files will be backed up. Your backup size will increase a bit. That's normal.
Quick-Reference Summary Table
| Cause | Symptom | Fix Summary |
|---|---|---|
| Permissions missing | Files exist but backup skips them. User folder owner mismatch. | Run chmod -R a+r /path/ to add read access for all. |
| File path too long | Deep nested folders. Files with long names. Backup completes but missing files. | Rename folders to shorten paths under 200 chars. |
| Rsync exclude patterns / hidden files | Files starting with dot are missing. Rsync log only shows transferred files. | Add --include='.*' to rsync command. Check exclude rules. |
Was this solution helpful?