Clonezilla 备份还原过程推送日志到 syslog

news2024/9/23 7:26:34

Clonezilla 备份、还原过程中,系统的运行日志只能显示到客户端显示器上,如果出现错误,无法在服务端查询到对应的日志,一是故障判断不太方便;另一方面,实现日志推送,也可以将 Clonezilla 运行进度上传到服务端,监控备份还原的进度。

以下为备份、还原过程中常见的节点,可以在该命令下方添加推送 syslog 的指令。

在这里插入图片描述

1、系统备份

✓空间不足或权限问题(line: 1137)

# usr\share\drbl\sbin\ocs-functions

  if [ "$ok_c" = "no" ]; then
    [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
    echo "$msg_disk_is_full_or_permission_issue: $tgt_dir" | tee --append ${OCS_LOGFILE}
    [ -n "$prompt_msg" ] && echo $prompt_msg
    [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
    echo "$msg_program_stop!" | tee --append ${OCS_LOGFILE}
    [ -f "$diskfull_test" ] && rm -f $diskfull_test
    echo -n "$msg_press_enter_to_continue..."
    read
    # Saving mode, always copy error log to image dir.
    copy_error_log
    exit 1
  fi
# usr\share\drbl\lang\bash\zh_CN.UTF-8
msg_disk_is_full_or_permission_issue='空间不足或权限问题,当前目录无法写入:'

# Clonezilla运行过程中提示
空间不足或权限问题,当前目录无法写入: /home/partimag

✓开始保存镜像(line: 1774)

# usr\share\drbl\sbin\ocs-functions

    echo "Starting saving $source_dev as $tgt_dir/${tgt_file}.XXX..." | tee --append ${OCS_LOGFILE}

✓完成保存镜像(line: 1289、1471、1531、1715)

# usr\share\drbl\sbin\ocs-functions

save_part_by_ntfsclone() {
  # ...
  echo "Finished saving $source_dev as $tgt_dir/${tgt_file}.ntfs-img"
} #  end of save_part_by_ntfsclone


save_part_by_partclone() {
  # ...
  if [ $rc -eq 0 ]; then
    echo $msg_delimiter_star_line | tee --append ${OCS_LOGFILE}
    echo "Finished saving $source_dev as $tgt_dir/$(to_filename ${tgt_file}).${fs_pre}-img.${comp_suf}" | tee --append ${OCS_LOGFILE}
  fi
  return $rc
} #  end of save_part_by_partclone

save_part_by_partimage() {
  # ...
  echo "Finished saving $source_dev as $tgt_dir/${tgt_file}.XXX" | tee --append ${OCS_LOGFILE}
  return $rc
} # end of save_part_by_partimage

save_part_by_dd() {
  # ...
  echo "Finished saving $source_dev as $tgt_dir/$(to_filename ${tgt_file}).dd-img" | tee --append ${OCS_LOGFILE}
  return $rc
} # end of save_part_by_dd

✓镜像保存报错(line: 1800)

# usr\share\drbl\sbin\ocs-functions

    echo $msg_delimiter_star_line | tee --append ${OCS_LOGFILE}
    if [ "$rc" -ne 0 ]; then
       [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
       echo "Failed to save partition $source_dev." | tee --append ${OCS_LOGFILE}
       [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
       echo "$msg_press_enter_to_continue..."
       read
       # Saving mode, always copy error log to image dir.
       copy_error_log
    fi
# Clonezilla运行过程中提示
Failed to save partition /dev/nvme0n1p3.

✓镜像保存/未保存成功+完成保存(line: 8760)

# usr\share\drbl\sbin\ocs-functions

  if [ "$rc_task_savedisk" -eq 0 ]; then
    [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
    echo "$msg_this_image_saved_successfully: $target_dir"
    [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
  else
    [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
    echo "$msg_this_image_not_saved_correctly"
    [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
  fi
  echo "End of savedisk job for image $target_dir." | tee --append $OCS_LOGFILE
# usr\share\drbl\lang\bash\zh_CN.UTF-8
msg_this_image_saved_successfully='镜像保存成功'
msg_this_image_not_saved_correctly='镜像未保存成功'

# Clonezilla运行过程中提示
End of savedisk job for image /home/partimag/2023-07-09-img.

2、系统还原

✓开始还原镜像(line: 5519、5589、5691、5812)

# usr\share\drbl\sbin\ocs-functions

unicast_restore_by_partimage() {
  # ...
  echo $msg_delimiter_star_line | tee --append ${OCS_LOGFILE}
  echo "Starting unicast restoring image ${target_d##*/} to $part..." | tee --append ${OCS_LOGFILE}
  # ...
} # end of unicast_restore_by_partimage

unicast_restore_by_ntfsclone() {
  # ...
  echo $msg_delimiter_star_line
  echo "Starting unicast restoring image ${target_d##*/} to $part..."
  # ...
} # end of unicast_restore_by_ntfsclone


unicast_restore_by_partclone() {
  # ...
  echo $msg_delimiter_star_line
  echo "Starting unicast restoring image ${target_d##*/} to $part..." | tee --append ${OCS_LOGFILE}
  # ...
} # end of unicast_restore_by_partclone

unicast_restore_by_dd() {
  # ...
  echo $msg_delimiter_star_line
  echo "Starting unicast restoring image ${target_d##*/} to $part..."
  # ...
} # end of unicast_restore_by_dd

✓完成还原镜像(line: 6185)

# usr\share\drbl\sbin\ocs-functions

  echo $msg_delimiter_star_line
  # time_elapsed, time_elapsed_in_min and speed are global variables
  # get the cat program: cat, zcat or bzcat
  if [ -f "$target_d/$img_file.000" -o \
       -n "$(ls $target_d/$img_file.aa* 2>/dev/null)" -o \
       -f "$target_d/$img_file" ]; then
    # The saved image is from partimage
    clean_filesystem_header_in_dev $part
    unicast_restore_by_partimage
  elif [ -f "$target_d/$img_file.ntfs-img" -o \
	 -n "$(ls $target_d/$img_file.ntfs-img.aa* 2>/dev/null)" ]; then
    # The saved image is from ntfsclone
    clean_filesystem_header_in_dev $part
    unicast_restore_by_ntfsclone
  elif is_partclone_image $target_d $img_file; then
    # The saved image is from partclone
    clean_filesystem_header_in_dev $part
    unicast_restore_by_partclone
  elif is_dd_image $target_d $img_file; then
    # The saved image is from dd
    clean_filesystem_header_in_dev $part
    unicast_restore_by_dd
  fi
  echo "Finished unicast restoring image ${target_d##*/} to $part." | tee --append ${OCS_LOGFILE}
  sleep 1

✓完成还原(line: 9349)

# usr\share\drbl\sbin\ocs-functions

  echo "Running: task_restoreparts \"$target_dir\" \"$target_parts\" \"$port\"" >> $OCS_LOGFILE
  task_restoreparts "$target_dir" "$target_parts" "$port"

  echo "End of restoredisk job for image $target_dir." | tee --append $OCS_LOGFILE

3、ocs-sr通用

✓开始ocs-sr(line: 1116)

# usr\sbin\ocs-sr

echo "Starting $0 at "$(LC_ALL=C date +%F' '%T' '%Z)"..." | tee --append ${OCS_LOGFILE}

✓完成ocs-sr(line: 1756)

# usr\sbin\ocs-sr

echo "Ending $0 at $(LC_ALL=C date +%F' '%T' '%Z)..." | tee --append ${OCS_LOGFILE}
exit 0
# Clonezilla运行过程中提示
Ending /usr/sbin/ocs-sr at 2024-01-01 13:13:13 UTC...

✓完成后重启(line: 96)

# usr\share\drbl\sbin\ocs-functions

    reboot)
      ocs-park-disks
      echo -n 'Will reboot... '; countdown 5
      reboot $HALT_REBOOT_OPT
      ;;
# Clonezilla运行过程中提示
Will reboot...  5 4 3 2 1

4、服务端日志收集

以上 Clonezilla 文件中,通过 shell 脚本去修改文本,添加日志命令,最终结果如下:

1)备份日志

2024-07-18 18:53:41 | INFO     | 192.168.100.161 ipxe: Downloaded "menu.ipxe"
2024-07-18 18:53:41 | INFO     | 192.168.100.161 ipxe: Executing "menu.ipxe"
2024-07-18 18:53:45 | INFO     | 192.168.100.161 ipxe: Downloaded "vmlinuz"
2024-07-18 18:53:47 | INFO     | 192.168.100.161 ipxe: Downloaded "initrd.img"
2024-07-18 18:53:47 | INFO     | 192.168.100.161 ipxe: Executing "vmlinuz"
2024-07-18 18:54:26 | INFO     | 192.168.100.163 clonezilla: Mounting samba, will mount //192.168.100.100/imgman to /home/partimag by admin
2024-07-18 18:54:26 | INFO     | 192.168.100.163 clonezilla: Mount type cifs, size 146.9G, used 5%, avail 139.1G
2024-07-18 18:54:26 | INFO     | 192.168.100.163 clonezilla: Mount success, /home/partimag already 3 images
2024-07-18 18:54:33 | INFO     | 192.168.100.163 clonezilla: Start execute clonezilla backup image script ↓↓↓
2024-07-18 18:54:33 | INFO     | 192.168.100.163 clonezilla: Select disk order: nvme ssd(100G) -> sata ssd(100G) -> sata hdd(400G)
2024-07-18 18:54:39 | INFO     | 192.168.100.163 clonezilla: List disks nvme0n1(type ssd, model VMware Virtual NVMe Disk, size 172G)
2024-07-18 18:54:40 | INFO     | 192.168.100.163 clonezilla: Select disk is nvme0n1
2024-07-18 18:54:40 | INFO     | 192.168.100.163 clonezilla: Backup image name is (from server, it may be empty)
2024-07-18 18:54:47 | INFO     | 192.168.100.163 clonezilla: Backup image name is img_01_top(actual saved image name)
2024-07-18 18:54:47 | INFO     | 192.168.100.163 clonezilla: Start backup disk nvme0n1 to image img_01_top
2024-07-18 18:54:55 | INFO     | 192.168.100.163 clonezilla: Starting /usr/sbin/ocs-sr at 2024-07-18 10:54:55 UTC
2024-07-18 18:55:06 | INFO     | 192.168.100.163 clonezilla: Starting saving /dev/nvme0n1p1 as /home/partimag/img_01_top/nvme0n1p1.XXX
2024-07-18 18:55:21 | INFO     | 192.168.100.163 clonezilla: Finished saving /dev/nvme0n1p1 as /home/partimag/img_01_top/nvme0n1p1.xfs-ptcl-img.gz by partclone
2024-07-18 18:55:23 | INFO     | 192.168.100.163 clonezilla: Starting saving /dev/almalinux/root as /home/partimag/img_01_top/almalinux-root.XXX
2024-07-18 18:56:23 | INFO     | 192.168.100.163 clonezilla: Finished saving /dev/almalinux/root as /home/partimag/img_01_top/almalinux-root.xfs-ptcl-img.gz by partclone
2024-07-18 18:56:23 | INFO     | 192.168.100.163 clonezilla: Image img_01_top saved successfully
2024-07-18 18:56:23 | INFO     | 192.168.100.163 clonezilla: End of savedisk job for image img_01_top
2024-07-18 18:56:32 | INFO     | 192.168.100.163 clonezilla: Finish restore or backup, reboot pc ↑↑↑
2024-07-18 18:56:33 | INFO     | 192.168.100.163 clonezilla: Ending /usr/sbin/ocs-sr at 2024-07-18 10:56:32 UTC

还原日志

2024-07-18 19:24:40 | INFO     | 192.168.100.161 ipxe: Downloaded "menu.ipxe"
2024-07-18 19:24:40 | INFO     | 192.168.100.161 ipxe: Executing "menu.ipxe"
2024-07-18 19:25:03 | INFO     | 192.168.100.161 ipxe: Downloaded "vmlinuz"
2024-07-18 19:25:04 | INFO     | 192.168.100.161 ipxe: Downloaded "initrd.img"
2024-07-18 19:25:04 | INFO     | 192.168.100.161 ipxe: Executing "vmlinuz"
2024-07-18 19:25:34 | INFO     | 192.168.100.164 clonezilla: Mounting samba, will mount //192.168.100.100/images to /home/partimag by image
2024-07-18 19:25:34 | INFO     | 192.168.100.164 clonezilla: Mount type cifs, size 146.9G, used 5%, avail 139.1G
2024-07-18 19:25:35 | INFO     | 192.168.100.164 clonezilla: Mount success, /home/partimag already 3 images
2024-07-18 19:25:41 | INFO     | 192.168.100.164 clonezilla: Start execute clonezilla restore image script ↓↓↓
2024-07-18 19:25:42 | INFO     | 192.168.100.164 clonezilla: Select disk order: nvme ssd(100G) -> sata ssd(100G) -> sata hdd(400G)
2024-07-18 19:25:47 | INFO     | 192.168.100.164 clonezilla: List disks nvme0n1(type ssd, model VMware Virtual NVMe Disk, size 172G)
2024-07-18 19:25:48 | INFO     | 192.168.100.164 clonezilla: Select disk is nvme0n1
2024-07-18 19:25:48 | INFO     | 192.168.100.164 clonezilla: Backup image name is (from server, it may be empty)
2024-07-18 19:25:55 | INFO     | 192.168.100.164 clonezilla: Start restore image img_01_top to disk nvme0n1
2024-07-18 19:26:03 | INFO     | 192.168.100.164 clonezilla: Starting /usr/sbin/ocs-sr at 2024-07-18 11:26:03 UTC
2024-07-18 19:26:19 | INFO     | 192.168.100.164 clonezilla: Starting restoring image img_01_top to /dev/nvme0n1p1 by partclone
2024-07-18 19:26:26 | INFO     | 192.168.100.164 clonezilla: Finished restoring image img_01_top to /dev/nvme0n1p1
2024-07-18 19:26:33 | INFO     | 192.168.100.164 clonezilla: Starting restoring image img_01_top to /dev/almalinux/root by partclone
2024-07-18 19:26:59 | INFO     | 192.168.100.164 clonezilla: Finished restoring image img_01_top to /dev/almalinux/root
2024-07-18 19:27:22 | INFO     | 192.168.100.164 clonezilla: End of restoredisk job for image img_01_top
2024-07-18 19:27:27 | INFO     | 192.168.100.164 clonezilla: Finish restore or backup, reboot pc ↑↑↑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1934143.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【前端】ikun-qrcode:极简的二维码生成组件,使用view而非canvas避免层级问题

文章目录 背景ikun-qrcode界面效果如何发布一款自己的插件到uniapp市场。(5分钟搞定) 背景 之前在uniapp上100行搞定二维码生成, 现在封装为vue组件分享出来: 下载地址: https://ext.dcloud.net.cn/plugin?id19351 …

吐血整理如何在Google Earth Engine上写循环 五个代码实例详细拆解

引言 这篇文章主要解答GEE中.map()和.iterate()函数的用法。 首先解答一个疑问,为什么需要自己写循环?确实,GEE 为各种数据类型提供了无数常用的内置函数,对这些方法做排列组合足以应对大多数使用场景,算法效率也颇佳。…

台风预警新选择:太阳能LED宣传信号杆

台风预警新选择:太阳能LED宣传信号杆 以下是对台风灾害的严重性、传统预警方式的不足以及太阳能台风预警宣传信号杆的出现和优势等方面进行分析和归纳: 一、台风灾害的严重性 台风作为一种强烈的自然灾害,给沿海地区带来了极大的威胁。台风…

【数学建模】——【线性规划】及其在资源优化中的应用

目录 线性规划问题的两类主要应用: 线性规划的数学模型的三要素: 线性规划的一般步骤: 例1: 人数选择 例2 :任务分配问题 例3: 饮食问题 线性规划模型 线性规划的模型一般可表示为 线性规划的模型标准型&…

论文学习——基于自适应选择的动态多目标进化优化有效响应策略

论文题目:Effective response strategies based on adaptive selection for dynamic multi-objective evolutionary optimization 基于自适应选择的动态多目标进化优化有效响应策略(Xiaoli Li a,b,c, Anran Cao a,∗, Kang Wang a)Applied S…

活动报名 | 智源研究院数据与行业应用Workshop

7月25日周四下午14点,智源人工智能研究院将联合中国互联网协会人工智能工委会、中国AIIA联盟数据委员会、共同举办数据与行业应用 Workshop~ 届时,智源的技术专家将介绍行业数据集和千万级指令微调数据集的构建思路和获取方法。更有来自北京…

【QGroundControl二次开发】二.使用QT编译QGC(Windows)

【QGroundControl二次开发】一.开发环境准备(Windows) 二. 使用QT编译QGC(Windows) 2.1 打开QT Creator,选择打开项目,打开之前下载的QGC项目源码。 编译器选择Desktop Qt 6.6.3 MSVC2019 64bit。 点击运…

Java项目打包成exe

文章目录 1.使用 exe4j 工具2.导出 jar 包3.转化 1.使用 exe4j 工具 安装激活: https://www.cnblogs.com/jepson6669/p/9211208.html 2.导出 jar 包 使用 mvn 的 package 导出默认没有依赖包,这里从 IDEA 的 Artifacts 导出。 // 导出路径为了方便…

鱼眼相机变普通相机,利用Transform进行球面变换

Abstract 高分辨率广角鱼眼图像在自动驾驶等机器人应用中变得越来越重要。然而,使用普通的卷积神经网络或视觉变换器处理这类数据时会遇到问题,因为在将其投影到平面上的矩形网格时会引入投影和失真损失。为了解决这个问题,我们引入了HEAL-S…

强化学习的数学原理(2)

Value iteration & Policy itreation Value iteration algorithm 之前我们已经讲过怎么去求解贝尔曼最优公式,是利用contraction mapping theorem 来进行求解,我们知道这个contraction mapping theorem是一个迭代算法,实际上这个算法他有…

在mybatis-plus中关于@insert注解自定义批处理sql导致其雪花算法失效而无法自动生成id的解决方法

受到这位作者的启发 > 原文在点这里 为了自己实现批量插入&#xff0c;我在mapper层使用insert注解写了一段自定义sql //自定义的批量插入方法 Insert("<script>" "insert into rpt_material_hour(id,sample_time,rounding_time,cur_month,machine_no…

【技术追踪】TeethDreamer:从 5 张口腔照片实现三维牙齿重建(MICCAI-2024)

三维重建搞起来~ TeethDreamer&#xff1a;一种3D牙齿重建新框架&#xff0c;旨在恢复上下牙齿的形状和位置&#xff0c;引入大型扩散模型的先验知识和3D感知特征注意力机制&#xff0c;重建性能表现SOTA&#xff01; 论文&#xff1a;TeethDreamer: 3D Teeth Reconstruction f…

elasticsearch 聚合 : 指标聚合、桶聚合、管道聚合解析使用总结

❃博主首页 &#xff1a; <码到三十五> ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a; <搬的每块砖&#xff0c;皆为峰峦之基&#xff1b;公众号搜索(码到…

FedAvg的简单实现(详解)

对于联邦学习正在学习中&#xff0c;下文中若有错误出现&#xff0c;望指正 介绍 本文在简单实现联邦平均算法时&#xff0c;使用客户-服务器架构&#xff0c;其基本流程是&#xff1a; 1、server初始化模型参数&#xff0c;所有clients将这个初始模型下载到本地 2、clien…

RK3568笔记三十六:LED驱动开发(设备树)

若该文为原创文章&#xff0c;转载请注明原文出处。 记录使用设备树编写一个简单的 LED 灯驱动程序 一、编程思路 程序编写的主要内容为添加 LED 灯的设备树节点、在驱动程序中使用 of 函数获取设备节点中的 属性&#xff0c;编写测试应用程序。 • 首先向设备树添加 LED 设备…

Python基础语法篇(下)+ 数据可视化

Python基础语法&#xff08;下&#xff09; 数据可视化 一、函数&#xff08;一&#xff09;函数的定义&#xff08;二&#xff09;函数的调用和传参 二、文件操作&#xff08;一&#xff09;文件读取和写入&#xff08;二&#xff09;文件对象及方法&#xff08;三&#xff09…

探寻大模型回答9.9和9.11犯错的根本原因

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

WinOS下获取dll中的方法列表

开发的Windows应用程序的安装环境从Win11 23H2切换到24H2时&#xff0c;出现获取电源模式不正确的问题&#xff0c;通过debug代码发现获取电源模式的方法是走的方法编号。由于Win11 24H2中增加了对外提供的方法&#xff0c;而增加的方法放在方法列表中间&#xff0c;导致其后面…

生成式AI的未来:对话的艺术与代理的实践

生成式 AI 的发展方向&#xff0c;是 Chat 还是 Agent&#xff1f; 随着生成式AI技术的不断进步&#xff0c;关于其未来发展方向的讨论也愈发激烈。究竟生成式AI的未来是在对话系统&#xff08;Chat&#xff09;中展现智慧&#xff0c;还是在自主代理&#xff08;Agent&#x…

图片太大怎么压缩变小?交给这4个方法就能行

在钱塘江畔&#xff0c;一场罕见的“蝴蝶潮”翩然而至&#xff0c;不仅带来了自然奇观&#xff0c;也预示着好运的降临。然而&#xff0c;当我们将这份美好瞬间分享给更多人时&#xff0c;却遇到了一个小小难题——高分辨率的照片占据了大量的存储空间&#xff0c;上传至社交平…