2bitO 大佬有话说 :
30元求解决一个Shell脚本小Bug
本帖最后由 2bitO 于 2020-9-21 17:46 编辑
最近在改前同事的备份脚本(提前说明,本人Shell菜鸡,代码惨不忍睹,大佬勿嘲)
备份代码倒是都OK,就是有一个小Bug:
废话不多说,代码先附上:
https://cowtransfer.com/s/a3f91195571444
Bug:
我用 bash -x 看到实际上在 start_backup()函数里已经给变量赋值成功了:
backup_result="成功"
backup_file_size="700M"
但是send_msg() 函数里调用上面两个函数,返回的是初始值:
backup_result="Unknown"
backup_file_size="Unknown"
最终跑起来的输出结果如下:
数据库备份信息:
备份结果:Unknown
备份开始时间:2020-09-18 10:51:40
备份花费时间:0秒
备份文件大小:Unknown
全量备份状态:未执行
哪位大佬点一下怎样正确输出 ${备份结果} 和 ${备份文件大小} 变量值。
aria2net 大佬有话说 :
改这种祖传代码,你居然只给10元?
2bitO 大佬有话说 :
aria2net 大佬有话说 : 2020-9-21 16:59
改这种祖传代码,你居然只给10元?
不清楚行情,大佬开个价
xyx4693 大佬有话说 :
十块钱太贵了太贵了
ABCHINA 大佬有话说 :
exit 500改成0-255
2bitO 大佬有话说 :
ABCHINA 大佬有话说 : 2020-9-21 17:27
exit 500改成0-255
还是不行
xtrabackup: Transaction log of lsn (1167337407968) to (1167389979285) was copied.
200921 00:16:59 completed OK!
+ ”'[”’ 1 -lt 1 ”’]”’
+ ”'[”’ ”’!”’ -d /backups/full/2020_09_20 ”’]”’
+ case $1 in
+ backup_result=成功"
}
}’
{"errcode":0,"errmsg":"ok"}+ pushd /backups/
/backups ~
+ find ./full ./inc1 ./inc2 ./inc3/ ./inc4 ./inc5 ./inc6 -depth -maxdepth 1 -type d -mtime +14 -exec rm -fr ‘{}’ ‘;’
+ popd
数据库备份信息:
备份结果:Unknown
备份开始时间:2020-09-21 17:44:51
备份花费时间:0秒
备份文件大小:Unknown
全量备份状态:未执行
似毛非毛 大佬有话说 :
成功失败1和0表示就行了吧。中文会不会容易有问题。显示的时候根据1和0判断成功还是失败
请叫我毛线 大佬有话说 :
send_msg "/backups/logs/backup_info_$today.log" 改成 send_msghttps://cdn.jsdelivr.net/gh/hishis/forum-master/public/images/patch.gif
LOC论坛最屌MJJ 大佬有话说 :
get_script_run_time
curl ‘http://oapi.dingtalk.com/robot/send?access_token=***’
-H ‘Content-Type: application/json’
-d ‘{"msgtype": "text",
"text": {
"content": "数据库备份信息:nn备份结果:’"$backup_result"’n备份开始时间:’"$backup_start_time"’n备份花费时间:’"$backup_used_time"’秒n备份文件大小:’"$backup_file_size"’n全量备份状态:’"$full_backup_result"’nn’"$msg"’"
}
}’
这段代码剪切放到
# Delete backup files 15 days ago
前面 然后跑一下我看下结果
wifitry 大佬有话说 :
没技术只能帮顶