Linux下备份 PHPStorm 项目的实用方案
一 备份范围与准备
二 快速可用的备份方法
tar -czvf project_$(date +%F).tar.gz -C /path/to/project-root .
rsync -avz project_$(date +%F).tar.gz user@backup-host:/backup/phpstorm/
mkdir -p /restore/path && tar -xzvf project_2025-11-21.tar.gz -C /restore/path
rsync -avz --delete /path/to/project/ user@backup-host:/backup/phpstorm/project/
rsync -avz --delete user@backup-host:/backup/phpstorm/project/ /path/to/project/
mysqldump -u USER -p DATABASE > db_$(date +%F).sql
pg_dump -U USER -d DATABASE > db_$(date +%F).sql
三 自动化与排期
crontab -e
0 2 * * * /usr/local/bin/backup_phpstorm.sh >> /var/log/backup_phpstorm.log 2>&1
#!/usr/bin/env bash
set -e
PROJ=/path/to/project-root
BACKUP=/backup/phpstorm
DATE=$(date +%F)
mkdir -p "$BACKUP"
# 打包项目(含 .idea)
tar -czvf "$BACKUP/project_$DATE.tar.gz" -C "$PROJ" .
# 数据库备份(按需启用并修改参数)
# mysqldump -u USER -pPASSWORD DATABASE > "$BACKUP/db_$DATE.sql"
# pg_dump -U USER -d DATABASE > "$BACKUP/db_$DATE.sql"
# 增量同步到远端
rsync -avz --delete "$BACKUP/" user@backup-host:/backup/phpstorm/
chmod +x /usr/local/bin/backup_phpstorm.sh
四 迁移与恢复步骤
mkdir -p /path/to/project && tar -xzvf project_2025-11-21.tar.gz -C /path/to/project
cd /path/to/project && composer install --optimize-autoloader --no-dev
mysql -u USER -p DATABASE < db_2025-11-21.sql
# 或 psql -U USER -d DATABASE < db_2025-11-21.sql
五 备份 IDE 配置(可选)
tar -czvf phpstorm_config_$(date +%F).tar.gz ~/.PhpStorm<version>/config
tar -czvf phpstorm_config_$(date +%F).tar.gz ~/.config/JetBrains/PhpStorm<version>
mkdir -p ~/.config/JetBrains/PhpStorm<version>
tar -xzvf phpstorm_config_2025-11-21.tar.gz -C ~/.config/JetBrains/PhpStorm<version>