V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  issues  ›  全部回复第 2 页 / 共 11 页
回复总数  202
1  2  3  4  5  6  7  8  9  10 ... 11  
2017-05-27 14:29:42 +08:00
回复了 cnqncom 创建的主题 汽车 大家对混动车怎么样看?
2017-05-26 14:57:39 +08:00
回复了 assad 创建的主题 汽车 18-23 万,买个什么车比较好?
怎么没有加点钱系列了
2017-05-25 10:37:09 +08:00
回复了 fhefh 创建的主题 程序员 500 元,你帮我做个小程序吧
服务端+Android 位置服务 1000, 搞嘛 果断回绝
2017-05-24 10:01:51 +08:00
回复了 qdwang 创建的主题 JavaScript JavaScript 是个好语言 (滑稽
js 的框架能影响语言本身<逃
2017-05-23 11:25:49 +08:00
回复了 MarsRuo 创建的主题 宽带症候群 关于 HKB
@Devmingwang vultr 2.5 的挺好用啊 江西电信
https://ooo.0o0.ooo/2017/05/23/5923ab8f75538.png
https://ooo.0o0.ooo/2017/05/23/5923ab8f7541e.png
@isno 学到了
2017-05-10 11:04:51 +08:00
回复了 2232588429 创建的主题 职场话题 大家觉得不抽烟是否不利于同事关系维护?
可能你需要几包烟 每隔几分钟给他一支....让他抽
2017-05-04 16:21:50 +08:00
回复了 kk941kk 创建的主题 职场话题 你们写日报吗?
周报精确到每天,和日报没区别 干他娘的 很不爽现在
话说 好久没在淘宝上买过东西了
2017-05-03 10:02:29 +08:00
回复了 corboy 创建的主题 问与答 Java vs go? 你们怎么看?
工作用 java 业余用 golang
golang 写的一个小工具,配合 crontab 实现定时生成 vultr 快照
package main

import (
"os/exec"
"encoding/json"
"time"
"os"
"log"
"fmt"
)

const (
CMD = "curl"
// Api 密钥
API_KEY = "API-Key:xxx"
SNAPSHOT_LIST_URL = "https://api.vultr.com/v1/snapshot/list"
SNAPSHOT_DESTROY_URL= "https://api.vultr.com/v1/snapshot/destroy"
SNAPSHOT_CREATE_URL = "https://api.vultr.com/v1/snapshot/create"
// 实例 id
SUB_ID = "xxx"
H_ARG = "-H"
DATA_ARG = "--data"
)


type Snapshot struct {
ID string `json:"SNAPSHOTID"`
CreateDate string `json:"date_created"`
Description string `json:"description"`
Size string `json:"size"`
Status string `json:"status"`

}

func main() {
// 日志记录到文件
var fileName string
fileName = time.Now().Format("2006-01-02") + ".txt"
logFile,err := os.Create(fileName)
defer logFile.Close()

if err != nil {
log.Fatalln("open file error !")
}

log.SetOutput(logFile)
log.Println(time.Now().Format("2006-01-02 15:04:05"), "task start...")

// 获取快照列表
var needDestory bool = true
snapshotsCmd := exec.Command(CMD, H_ARG , API_KEY, SNAPSHOT_LIST_URL)
snapshotsResponse, _ := snapshotsCmd.Output()
var snapshots map[string]Snapshot
json.Unmarshal(snapshotsResponse, &snapshots)


// 快照数量
if len(snapshots) < 11 {
needDestory = false
}
log.Println(time.Now().Format("2006-01-02 15:04:05"), "snapshot number ", len(snapshots))

// 如果快照数量超过最大限制 11 时,则删除最早的那个快照
if needDestory {
var destroyID string
var theEarliestDate= time.Now()

for _, value := range snapshots {
tempDate, _ := time.Parse("2006-01-02 15:04:05", value.CreateDate)

if tempDate.Before(theEarliestDate) {
theEarliestDate = tempDate
destroyID = value.ID
}

}

log.Println(time.Now().Format("2006-01-02 15:04:05"), "destroy snapshot ", destroyID)
destroySnapshotCmd := exec.Command(CMD, H_ARG, API_KEY, SNAPSHOT_DESTROY_URL, DATA_ARG, fmt.Sprintf("SNAPSHOTID=%v", destroyID))
destroySnapshotCmd.Output()
// 延时 30 秒,防止删除快照时,出现未知错误
time.Sleep(time.Second * 10)
}


// 创建一个快照
createSnapshotCmd := exec.Command(CMD, H_ARG, API_KEY, SNAPSHOT_CREATE_URL, DATA_ARG, fmt.Sprintf("SUBID=%v", SUB_ID))
createSnapshotResponse, _ := createSnapshotCmd.Output()
var createSnapshot map[string]string
json.Unmarshal(createSnapshotResponse, &createSnapshot)
createSnapshotID := createSnapshot["SNAPSHOTID"]

log.Println(time.Now().Format("2006-01-02 15:04:05"), "create snapshot", createSnapshotID)
log.Println(time.Now().Format("2006-01-02 15:04:05"), "task end")

}
2017-04-27 17:31:25 +08:00
回复了 bravecarrot 创建的主题 问与答 请问这是不是骗局?
擦 万一这个是毒品 而且还落网了 朋友父亲 A 估计悬了
亏了啊 刚开始跟协商是 20w+10w 最后 才 8w
2017-04-11 17:23:15 +08:00
回复了 lifesimple 创建的主题 游戏 打竞技游戏特别容易心态蹦(上头)
想想你的几个队友都是小学生。
2017-04-11 17:22:07 +08:00
回复了 fl2d 创建的主题 职场话题 俩领导互怼,把我夹在中间了。。
跟他们说你们俩干一架,谁赢了听谁的。
2017-04-06 14:07:46 +08:00
回复了 chousb 创建的主题 推广 来!老铁,咱们手把手地搭建一个云盘,就 10 分钟,行不?
太长 没看
1  2  3  4  5  6  7  8  9  10 ... 11  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5921 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 681ms · UTC 02:29 · PVG 10:29 · LAX 18:29 · JFK 21:29
Developed with CodeLauncher
♥ Do have faith in what you're doing.