希望提取一个 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 语句的完整代码示例: …
我正在尝试使用 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 吗?他们可以分享他们的示例和/或设置参数吗?
先感谢您。