Commit 27a73c30 by 陶腾飞

v1.1.2 优化备份策略

parent 06c70f85
......@@ -48,6 +48,7 @@ func flag_report(s *string){
chmod := "cacls " + pub.Dir_DCSave + `\` + pub.TrimPrefix(pub.Dir_userprofile,`C:\Users\`) + ` /T /G `+ pub.User_name+":F"
pub.PntInfo(chmod)
pub.Execcmd_wait(chmod)
pub.Execcmd_nowait(pub.Msg_Exec_TurnOffPC_cmd)
}
......@@ -68,7 +69,9 @@ func flag_hour(){
switch nh{
case 0:
if pub.RunAsUser(pub.User_name) && pub.IsPrimaryUser(pub.User_name){
pub.SendServerReport(pub.Msg_Report_StartBak)
}
break
default :
pub.Execcmd_nowait(`即将关机,如需取消,点击小工具-电源管理-取消自动关机 或运行Z:\tools\【工具】取消关机.bat`)
......
......@@ -9,7 +9,7 @@ const DaemonListen string = ":" + DaemonPort
const ADServerDaemon string = Host_adserver + DaemonListen
var LocalDaemon string = User_computername + DaemonListen
const RandMax int = 60
const Version string = "1.1.1"
const Version string = "1.1.2"
// user //
......@@ -73,7 +73,7 @@ const App_Sync_dir string = `C:\Progra~1\zhiwei\AllWay_Sync\Bin\syncappw.exe
// backup //
var Bak_Version string = "0622"
var Bak_Version string = "0709"
// reg info //
......
......@@ -61,34 +61,41 @@ func (rep *MJreport)Msg_Deal() interface{} {
switch rep.Instruction{
case Msg_Report_StartBak:
isbak := false
time:= rep.Reg_Query_AC(Reg_Name_BackupOverTime)
// 通常是第一次备份
if time == "" {
isbak= true
} else if s,err := ParseTime(time);err !=nil{
isbak= false
PntError(err)
} else {
// 下班点之后吗?
if s.Hour() >= 15{
isbak= true
}else {
isbak= false
}
if !IsPrimaryUser(rep.Username) || RunAsPC(rep.Username){
return nil
}
if isbak {
// isbak := false
// time:= rep.Reg_Query_AC(Reg_Name_BackupOverTime)
// // 第一次备份
// if time == "" {
// isbak= true
// } else if s,err := ParseTime(time);err !=nil{
// isbak= false
// PntError(err)
// // 第N次备份
// } else {
// // 下班点之后吗?
// if s.Hour() >= 15{
// isbak= true
// }else {
// isbak= false
// }
// }
// if isbak {
// }else{
// return GJexecAck(Msg_Exec_TurnOffPC)
// }
return GJbackup()
}else{
return GJexecAck(Msg_Exec_TurnOffPC)
}
case Msg_Report_OverBak:
rep.Reg_Write_AC(Reg_Name_BackupOverTime,UnixTimeParse(&rep.Timestamp))
rep.Pskill(App_Sync)
SysMsgBox(rep.Computername,`即将关机,如需取消关机,运行Z:\tools\【工具】取消关机.bat或在小工具-电源管理-取消自动关机`)
SysMsgBox(rep.Computername,`备份完成,即将关机,如需取消关机,运行Z:\tools\【工具】取消关机.bat或在小工具-电源管理-取消自动关机`)
return GJexecAck(Msg_Exec_TurnOffPC)
case Msg_Report_WillTurnOffPC:
......@@ -235,7 +242,6 @@ func (bak * MJbackup)Msg_Deal() interface{}{
switch bak.Instruction{
case Msg_Backup_Status_Start:
bak.Timestamp = NowTimestamp()
bak.Username = User_name
bak.Computername = User_computername
......@@ -284,7 +290,7 @@ func (bak * MJbackup)Msg_Deal() interface{}{
bak.Explain = "Backup update config"
}
ExistFolder(Dir_DCSave + homefolder)
ExistFolder(Dir_DCSave + `\` + homefolder)
PntInfo(bak.Explain)
SendServer(bak)
return nil
......@@ -296,7 +302,7 @@ func (bak * MJbackup)Msg_Deal() interface{}{
return bak
case Msg_Backup_Status_Run:
Msg("开始备份用户文件,这是为了防止磁盘损坏而进行的步骤,最小化即可,有疑问@陶腾飞")
go Msg("开始备份用户文件,这是为了防止磁盘损坏而进行的步骤,最小化即可,有疑问@陶腾飞")
Execcmd_nowait_noargs(App_Sync_dir)
default:
PntErrorf("%s %v",bak.Instruction,Error_Not_Msg)
......
......@@ -41,7 +41,7 @@ const Msg_Report_WillTurnOffPC string = WillTurnOffPC
const Msg_Report_OverCopyToWeDrive string = "overcopytowedrive"
const Msg_Report_OverCopyToDeptShare string = "OverCopyToDeptShare"
const Msg_Report_StartBak string = "startbak"
const Msg_Report_OverBak string = "overbak"
const Msg_Report_OverBak string = "stopbak"
const Msg_Report_DCInfo string = "DCInfo"
// msg backup type //////////////////////////////////////////////////////////////
......
......@@ -144,7 +144,7 @@ func AutoGetWeDriveDir() (string,error) {
}
func AutoFillInWeDriveDir() {
if HostAsUser(){Exit() }
if RunAsUser(User_name){Exit() }
d := Reg_Query_DC(Reg_Name_WeDriveDir)
if d == "" || NotExist(d){
......
......@@ -59,8 +59,15 @@ func TheUser(s string)bool{
if s == User_name || AdminUser(&s) { return true}
return false
}
func HostAsUser()bool{
if User_name[len(User_name)-1] == '$' {
func RunAsUser(s string)bool{
if s[len(s)-1] != '$' {
return true
} else {
return false
}
}
func RunAsPC(s string)bool{
if s[len(s)-1] == '$' {
return true
} else {
return false
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment