Digital Ocean Ubuntu/Debian服务器SQLite数据库文件查找求助
定位Ubuntu/Debian服务器上的SQLite数据库文件
嗨,我来帮你找到那个database.s3db文件!结合你用的.NET路径配置和无头运行的场景,咱们一步步排查:
1. 先搞懂.NET路径映射规则
你代码里用的Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)在Linux系统上有固定的映射逻辑:
- 系统会先看有没有设置
XDG_CONFIG_HOME环境变量,如果有,就用这个变量指向的路径 - 如果没设置这个变量,默认会用运行服务的用户的家目录下的
.config文件夹
2. 确定运行服务的用户
你是用./master_server.x86_64 &启动的服务,这个命令的执行用户决定了“家目录”的位置:
- 如果你是用普通用户(比如DigitalOcean默认的
ubuntu用户)运行,家目录是/home/ubuntu,对应的数据库路径就是/home/ubuntu/.config - 如果你是用root用户运行,家目录是
/root,对应的路径就是/root/.config
要是不确定当前服务是哪个用户在跑,可以用这个命令查进程所属用户:
ps aux | grep master_server.x86_64
输出里的第一列就是进程的运行用户。
3. 直接查找文件的命令
根据上面确定的用户,用find命令快速定位:
- 普通用户(比如ubuntu):
find /home/ubuntu/.config -name "database.s3db" - root用户:
find /root/.config -name "database.s3db"
4. 其他可能的排查点
- 如果还是找不到,先检查
XDG_CONFIG_HOME环境变量有没有被自定义设置:
要是有输出结果,就去这个目录下找数据库文件echo $XDG_CONFIG_HOME - 另外,也可以看看服务的运行日志(如果程序有输出日志的话),说不定服务还没成功创建数据库就退出了,这时候自然找不到文件
内容的提问来源于stack exchange,提问作者Tabi
相关产品推荐
相关产品推荐

