Commit 27a73c30 by 陶腾飞

v1.1.2 优化备份策略

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