小编Sie*_*4x4的帖子

如何在不同操作系统上处理 fileinfo.sys()

希望提取一个 go 包中文件的文件属性,该包可以在 Linux 和 Windows 中使用。

使用 go,在 Windows 中我可以成功获取文件的属性:

path = Filename, i.e. c:\123.txt

fileinfo, _ := os.Stat(path)
stat := fileinfo.Sys().(*syscall.Win32FileAttributeData)
aTimeSince = time.Since(time.Unix(0, stat.LastAccessTime.Nanoseconds()))
cTimeSince = time.Since(time.Unix(0, stat.CreationTime.Nanoseconds()))
mTimeSince = time.Since(time.Unix(0, stat.LastWriteTime.Nanoseconds()))
Run Code Online (Sandbox Code Playgroud)

同样,我也可以在 Linux 中获得相同的信息:

fileinfo, _ := os.Stat(path)
aTime = fileinfo.Sys().(*syscall.Stat_t).Atim
cTime = fileinfo.Sys().(*syscall.Stat_t).Ctim
mTime = fileinfo.Sys().(*syscall.Stat_t).Mtim
aTimeSince = time.Since(time.Unix(aTime.Sec, aTime.Nsec))
cTimeSince = time.Since(time.Unix(cTime.Sec, cTime.Nsec))
mTimeSince = time.Since(time.Unix(mTime.Sec, mTime.Nsec))
Run Code Online (Sandbox Code Playgroud)

然而,当我将这两个语句合并到一个 go 文件中时,Linux 拒绝了 Windows 代码,Windows 也拒绝了 Linux 代码。

阅读 go 手册,指出我需要为操作系统指定 $GOOS,但不确定如何执行此操作并且无法在任何地方找到它。

带有 if runtime.GOOS 语句的完整代码示例: …

linux windows time properties go

5
推荐指数
0
解决办法
2787
查看次数

AWS Batch 无法启动 Dockerfile - standard_init_linux.go:219: exec 用户进程导致:exec 格式错误

我正在尝试使用 AWS Batch 启动 Linux 服务器,该服务器本质上将执行 AWS 中包含的 fetch and go 示例(从 S3 下载 SH 并运行它)。

AWS Batch 适合任何人吗?

aws fetch_and_go 示例总是失败,甚至遵循其他人模仿 aws 示例的在线指南。

我尝试使用大量的 RUN 和 CMD 为 amazonlinux:latest 和 ubuntu:20.04 创建 Dockerfile。

脚本似乎总是失败并出现以下错误:

standard_init_linux.go:219: exec user process caused: exec format error
Run Code Online (Sandbox Code Playgroud)

我一开始认为这可能与我在 amazonlinux 中的部署访问权限相关,因此在 she 文件上使用了 chmod 777、chmod -x 等。

棺材上的最后一颗钉子,我现在的剧本是垃圾:

FROM ubuntu:20.04
Run Code Online (Sandbox Code Playgroud)

使用 AWS Batch 启动此程序,没有传递任何命令或参数,但它仍然失败并显示相同的错误代码。这几乎暗示我的 AWS Batch 存在设置问题(我使用默认向导设置,除了更改为 a1.medium 服务器),或者 AWS Batch 存在一些重大问题。

有人通过 AWS Batch 成功启动了自己的 Dockerfile 吗?他们可以分享他们的示例和/或设置参数吗?

先感谢您。

ubuntu amazon-web-services docker

0
推荐指数
1
解决办法
2097
查看次数

标签 统计

amazon-web-services ×1

docker ×1

go ×1

linux ×1

properties ×1

time ×1

ubuntu ×1

windows ×1