func LoadCmdMap() {
CmdMap = make(map[string]CmdMsgIndex)
Db, err := bolt.Open(dbName, 0600, nil)
if err != nil {
log.Panicf("open the Dbfailed! %v\n", err)
}
err = Db.Update(func(tx *bolt.Tx) error {
b := tx.Bucket([]byte(bkName))
if b == nil {
b, err = tx.CreateBucket([]byte(bkName))
if err != nil {
log.Panicf("create the bucket [%s] failed! %v\n", bkName, err)
}
}
if b != nil {
var cmdmsgindex CmdMsgIndex
cmdmsgindex.TimeStamp = time.Now().Format("2006-01-02 15:04:05") //获取的时间的格式
cmdmsgindex.Cmd = "startup"
cmdmsgindex.ExcuteStatus = true
cmdmsgindex.Sid = fmt.Sprintf("%d", 10000)
cmdmsgindex.Type = 10000
err := b.Put([]byte(cmdmsgindex.TimeStamp), Serialize(cmdmsgindex))
if nil != err {
log.Panicf("put the data of new block into Dbfailed! %v\n", err)
}
if err != nil {
fmt.Print(err.Error())
}
}
return nil
})
/*
Db.View(func(tx *bolt.Tx) error {
// Assume bucket exists and has keys
b := tx.Bucket([]byte(bkName))
c := b.Cursor()
CmdMap = make(map[int]CmdMsgIndex)
for k, v := c.First(); k != nil; k, v = c.Next() {
key := DeserilizeBlock(k).(int)
value := DeserilizeBlock(v).(CmdMsgIndex)
CmdMap[key] = value
}
return nil
})
*/
Db.View(func(tx *bolt.Tx) error {
// Assume our events bucket exists and has RFC3339 encoded time keys.
c := tx.Bucket([]byte(bkName)).Cursor()
// Our time range spans the 90's decade.
nowTime := time.Now()
getTime := nowTime.AddDate(0, -1, 0) //年,月,日 获取一个月前的时间
minTime := getTime.Format("2006-01-02 15:04:05") //获取的时间的格式
maxTime := nowTime.Format("2006-01-02 15:04:05") //获取的时间的格式
min := []byte(minTime)
max := []byte(maxTime)
// Iterate over the 90's.
for k, v := c.Seek(min); k != nil && bytes.Compare(k, max) <= 0; k, v = c.Next() {
key := byteString(k)
value := DeserilizeBlock(v)
fmt.Println(key, value)
CmdMap[value.Sid] = *value
}
return nil
})
}
func ViewDb() {
Db.View(func(tx *bolt.Tx) error {
// Assume our events bucket exists and has RFC3339 encoded time keys.
c := tx.Bucket([]byte("Events")).Cursor()
// Our time range spans the 90's decade.
nowTime := time.Now()
getTime := nowTime.AddDate(0, -1, 0) //年,月,日 获取一个月前的时间
minTime := getTime.Format("2006-01-02 15:04:05") //获取的时间的格式
maxTime := nowTime.Format("2006-01-02 15:04:05") //获取的时间的格式
min := []byte(minTime)
max := []byte(maxTime)
// Iterate over the 90's.
for k, v := c.Seek(min); k != nil && bytes.Compare(k, max) <= 0; k, v = c.Next() {
key := byteString(k)
value := DeserilizeBlock(v)
fmt.Println(key, value)
CmdMap[value.Sid] = *value
}
return nil
})
}