System Environment:
- OS: Ubuntu 24.04 (Noble)
- Hardware: Intel i7-7700K / Nvidia GPU
- Driver Conflict Noted: Nvidia 580.x branch (Known to cause Segfault/Core Dump on startup)
1. Automated Weekly Backups
This script stops the Plex service to ensure database integrity, creates a compressed archive of the entire server metadata, and deletes backups older than 31 days.
Script: ~/plex_backup.sh
#!/bin/bash
SOURCE_DIR="/var/lib/plexmediaserver/Library/Application Support/Plex Media Server"
BACKUP_DEST="/home/max/plex_backups"
TIMESTAMP=$(date +"%Y-%m-%d")
FILENAME="plex-backup-$TIMESTAMP.tar.gz"
mkdir -p "$BACKUP_DEST"
systemctl stop plexmediaserver
tar -czf "$BACKUP_DEST/$FILENAME" "$SOURCE_DIR"
systemctl start plexmediaserver
find "$BACKUP_DEST" -type f -name "plex-backup-*.tar.gz" -mtime +31 -delete
Automation (Cron Job)
Scheduled for Every Sunday at 3:00 AM:
0 3 * * 0 /home/max/plex_backup.sh >> /home/max/plex_backup.log 2>&1
2. Full System Restore
Use this script if the database becomes corrupt or a software update breaks the library entirely. It reverts the server to the most recent weekly backup.
Script: ~/plex_restore.sh
#!/bin/bash
BACKUP_DIR="/home/max/plex_backups"
DEST_DIR="/var/lib/plexmediaserver/Library/Application Support"
LATEST_BACKUP=$(ls -t $BACKUP_DIR/plex-backup-*.tar.gz | head -1)
echo "Restoring from: $LATEST_BACKUP"
systemctl stop plexmediaserver
mv "$DEST_DIR/Plex Media Server" /tmp/plex_broken_$(date +%s)
tar -xvzf "$LATEST_BACKUP" -C /
chown -R plex:plex "$DEST_DIR/Plex Media Server"
systemctl start plexmediaserver
3. GPU Emergency Scripts (Nvidia)
Disable GPU (The Killswitch): ~/plex_gpu_disable.sh
Use this if Plex fails to start with a Core Dump. It forces Software-only mode by hiding CUDA and editing preferences.
#!/bin/bash
PREFS="/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Preferences.xml"
sudo systemctl stop plexmediaserver
sudo sed -i 's/HardwareAcceleratedTranscoder="1"/HardwareAcceleratedTranscoder="0"/g' "$PREFS"
if [ -f "/usr/lib/x86_64-linux-gnu/libcuda.so.1" ]; then
sudo mv /usr/lib/x86_64-linux-gnu/libcuda.so.1 /usr/lib/x86_64-linux-gnu/libcuda.so.1.bak
fi
sudo rm -rf "/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/*"
sudo systemctl start plexmediaserver
Enable GPU (The Restore): ~/plex_gpu_enable.sh
Use this once Nvidia drivers are updated or stable to re-enable hardware transcoding.
#!/bin/bash
PREFS="/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Preferences.xml"
sudo systemctl stop plexmediaserver
if [ -f "/usr/lib/x86_64-linux-gnu/libcuda.so.1.bak" ]; then
sudo mv /usr/lib/x86_64-linux-gnu/libcuda.so.1.bak /usr/lib/x86_64-linux-gnu/libcuda.so.1
fi
sudo sed -i 's/HardwareAcceleratedTranscoder="0"/HardwareAcceleratedTranscoder="1"/g' "$PREFS"
sudo systemctl start plexmediaserver
4. Key Troubleshooting Commands
| Task | Command |
| --- | --- |
| Check for Crashes | sudo dmesg | | **Check Service Status** | sudo systemctl status plexmediaserver| | **View Live Logs** |journalctl -u plexmediaserver -f| | **Check Repo Version** |apt-cache policy plexmediaserver` |
5. Maintenance Notes
- APT Key: Located in
/usr/share/keyrings/plex-archive-keyring.gpg. - Update Channel: Keep on Public (Settings > General) to avoid broken Beta builds.
- Nvidia Drivers: Stable production branches (e.g., 535 or 550) are generally recommended over New Feature branches (580+) for maximum Plex stability on Ubuntu 24.04.