介绍
当应用程序异常退出或导致应用程序挂起时,应该收集 strace,它在解决 Linux 系统上的各种问题时也很有用。
如果系统处于活动状态但 Acronis 软件不执行任何操作或挂起,strace 可以帮助查明问题的原因。
如果应用程序崩溃或系统死机,strace 很少有用。在这种情况下,请按照故障排除应用程序崩溃中的故障排除说明进行操作。
解决方法
Strace
Strace 输出文件包含程序在运行时使用的系统调用。
要收集 strace,必须在系统中安装 strace 包。在大多数情况下,它是预先安装的。如果没有安装,可以通过以下方式安装(root下):
- Debian based OS: apt-get install strace
- SLES: yast -i strace
- RHEL/CentOS: yum install strace
- 或者可以手动安装:http://sourceforge.net/projects/strace/
Acronis Managed Machine Service
获取正在运行的 MMS 服务的 strace 信息:
1.使用ps工具获取运行MMS服务的PID
2.使用以下命令开始跟踪MMS:
strace -o /tmp/mms2.strace -fF -ttt -p <PID>
其中是步骤1获得的MMS服务的PID
3.重现问题(例如开始备份)
4.重现问题后,在终端中按 Ctrl+C 以结束 strace
在某些情况下,可能需要从 MMS 启动收集 strace 日志(例如,如果 MMS 服务在启动时失败或磁盘检测不正确)。在这种情况下,请遵循以下说明:
1.停止MMS服务:
sudo service acronis_mms stop
2.使用以下命令启动 strace:
#strace -o /tmp/mms.strace -fF -ttt /usr/sbin/acronis_mms
它将从 MMS 二进制文件创建一个输出文件 mms.strace
3.如果 MMS 崩溃或意外终止,strace 日志记录将在 MMS 停止时自动停止。否则,在重现问题后按 Ctrl+C 终止 strace
Acronis Management Console
通过发出以下命令直接 Strace 管理控制台二进制文件:
#strace -o /tmp/console.strace -fF -ttt /usr/lib/Acronis/BackupAndRecoveryConsole/ManagementConsole
Service Process
请注意,由于服务进程的 strace 是使用 MMS strace 自动收集的。仅当特别需要此进程的单独 strace 时才应收集服务进程 strace(在大多数情况下,MMS strace 就足够了)
打开 /usr/lib/Acronis/BackupAndRecovery/service_process 进行编辑和更改此块:
else
export LD_LIBRARY_PATH
exec $WRAPPER /usr/lib/Acronis/BackupAndRecovery/service_process-bin "$@"
fi
改为
else
export LD_LIBRARY_PATH
exec $WRAPPER strace -o /tmp/service_process.$$.strace -fF -ttt /usr/lib/Acronis/BackupAndRecovery/service_process-bin "$@" > /tmp/service_process.$$ 2>&1
fi
它将在 /tmp/service_process/* 目录中创建一个 strace 日志
开始备份,当问题重现时,将生成的文件发送给开发团队
收集 strace 日志文件后恢复所有更改
Acronis Bootable Media (Linux based)
首先,您应该在命令行中引导媒体而不启动 Acronis 产品。要在 Acronis 启动选择上执行此操作,请按 F11 并删除该词。
开始引导,媒体将带您进入命令行。
当媒体在 RAM 中运行时,连接 USB 闪存驱动器或网络共享。
将它们安装在本地,例如 USB 闪存驱动器:
#fdisk -l
Device Boot Start End Blocks Id System
/dev/sdb1 1 64 480000000 83 Linux
#mkdir /tmp/dongle
#mount -t auto /dev/sdb1 /tmp/dongle
现在您可以对产品进行 strace 并将其输出转发到我们创建的挂载点。另外,请记住 FAT32 文件大小限制为 4 GB。如果可能,您可以使用 ext4 FS 格式化您的 USB 驱动器。
#strace -o /tmp/dongle/mms.strace -fF /bin/product
在关闭或重新启动机器或使用以下命令卸载驱动器之前,请勿移除 USB 驱动器:
#umount /tmp/dongle
Virtual Appliance
对于备份Appliance (All-In-One appliance),使用与 Linux 相同的步骤,不要遵循Virtual Appliance的步骤。
记下 Virtual Appliance 的 IP 地址,按 CTRL+SHIFT+ALT+SPACE+F2 进入文本控制台并启动 SSH 守护进程
#/bin/sshd
使用 WinSCP 连接到 Virtual Appliance 并将 /bin/service_process 重命名为 /bin/service_process.bin
下载 service_process.zip,解压压缩包,将文件 service_process 复制到 /bin/
在 WinSCP 中,转到 Commands -> Open Terminal 并运行以下命令
#chmod +x /bin/service_process
重现问题并从 /tmp/root 收集 strace,把原来的 /bin/service_process 放到原位置。
更多内容:Acronis Linux Products:在 Linux 和 MacOS 中收集 Asamba 日志