============
== 白菜 ==
============
一个勤奋的代码搬运工!

使用 Golang 的交叉编译

Golang 编程学习

在 Linux 上测试软件时,我使用各种架构的服务器,例如 Intel、AMD、Arm 等。当我 分配了一台满足我的测试需求的 Linux 机器[1],我仍然需要执行许多步骤:

  • 下载并安装必备软件
  • 验证构建服务器上是否有新的测试软件包
  • 获取并设置依赖软件包所需的 yum 仓库
  • 下载并安装新的测试软件包(基于步骤 2)
  • 获取并设置必需的 SSL 证书
  • 设置测试环境,获取所需的 Git 仓库,更改配置,重新启动守护进程等
  • 做其他需要做的事情

用脚本自动化

这些步骤非常常规,以至于有必要对其进行自动化并将脚本保存到中央位置(例如文件服务器),在需要时可以在此处下载脚本。为此,我编写了 100-120 行的 Bash shell 脚本,它为我完成了所有配置(包括错误检查)。这个脚本通过以下方式简化了我的工作流程:

  • 配置新的 Linux 系统(支持测试的架构)
  • 登录系统并从中央位置下载自动化 shell 脚本
  • 运行它来配置系统
  • 开始测试

学习 Go 语言

我想学习 Go 语言 有一段时间了,将我心爱的 Shell 脚本转换为 Go 程序似乎是一个很好的项目,可以帮助我入门。它的语法看起来很简单,在尝试了一些测试程序后,我开始着手提高自己的知识并熟悉 Go 标准库。

我花了一个星期的时间在笔记本电脑上编写 Go 程序。我经常在我的 x86 服务器上测试程序,清除错误并使程序健壮起来,一切都很顺利。

直到完全转换到 Go 程序前,我继续依赖自己的 shell 脚本。然后,我将二进制文件推送到中央文件服务器上,以便每次配置新服务器时,我要做的就是获取二进制文件,将可执行标志打开,然后运行二进制文件。我对早期的结果很满意:

$ wget http://file.example.com/<myuser>/bins/prepnode
$ chmod  +x ./prepnode
$ ./prepnode

然后,出现了一个问题

Read more...

Linux/Mac 使用 GNU Screen 的小技巧

screen linux Mac GNU Screen

学习基本的 GNU Screen 终端复用技术,然后下载我们的终端命令备忘录,以便你能够熟悉常用的快捷方式。

对于一般用户而言,命令行终端窗口可能是令人困惑和神秘的。但随着你对 Linux 终端的进一步了解,你很快就会意识到它的高效和强大。不过,也不需要很长时间,你就会想让终端变得更加高效,除了将更多的终端放到你的终端,还有什么高好的方法能够提升你的终端效率呢?

终端复用

终端的许多优点之一是它是一个集中控制的界面。它是一个能让你访问数百个应用程序的窗口,而你与每一个应用程序进行交互所需要的只是一个键盘。但是,现代计算机几乎总是有多余的处理能力,而且现代计算机专家喜欢多任务处理,导致一个窗口处理数百个应用程序的能力是相当有限的。

解决这一问题的常见答案是终端复用:即将虚拟终端叠放在一起,然后在它们之间移动的能力。通过终端复用器,你保持了集中控制,但是当你进行多任务时,你能够进行终端切换。更好的是,你能够在终端中拆分屏幕,使得在同一时间显示多个屏幕窗口。

选择合适的复用器

一些终端提供类似的功能,有标签式界面和分割式视图,但也有细微的差别。首先,这些终端的功能依赖于图形化的桌面环境。其次,许多图形化的终端功能需要鼠标交互或使用不方便的键盘快捷键。终端复用器的功能在文本控制台上和在图形桌面上一样好用,而且键位绑定是针对常见的终端序列设计的,很方便。

现有两种流行的复用器:tmux 和 GNU Screen。尽管你与它们互动的方式略有不同,但它们做同样的事情,而且大多具有相同的功能。这篇文章是 GNU Screen 的入门指南。关于 tmux 的相关介绍,请阅读 Kevin Sonney 的 tmux 介绍。

使用 GNU Screen

GNU Screen 的基本用法很简单,通过 screen 命令启动,你将进入 Screen 会话的第 0 个窗口。在你决定需要一个新的终端提示符前,你可能很难注意到有什么变化。

当一个终端窗口被某项活动占用(比如,你启动了文本编辑器 VimJove 或者你在处理音视频,或运行批处理任务),你可以新建一个窗口。要打开一个新的窗口,按 Ctrl+A,释放,然后按 c。这将在你现有窗口的基础上创建一个新的窗口。

你会知道当前你是在一个新的窗口中,因为你的终端除了默认的提示符外,似乎没有任何东西。当然,你的另一个终端仍然存在,它只是躲在新窗口的后面。要遍历打开的窗口,按 Ctrl+A,释放,然后按 n(表示下一个)或按 p(表示上一个)。在只打开两个窗口的情况下, np 的功能是一样的,但你可以随时打开更多的窗口(Ctrl+A,然后 c ),并在它们之间切换。

分屏

GNU Screen 的默认行为更像移动设备的屏幕,而不是桌面:你一次只能看到一个窗口。如果你因为喜欢多任务而使用 GNU Screen ,那么只关注一个窗口可能看起来是一种退步。幸运的是,GNU Screen 可以让你把终端分成窗口中的窗口。

要创建一个水平分割窗口,按 Ctrl+A,然后按 s 。这将把一个窗口置于另一个窗口之上,就像窗格一样。然而,在你告诉它要显示什么之前,分割的空间是没有用途的。因此,在创建一个分割窗后,你可以用 Ctrl+A ,然后用 Tab 移动到分割窗中。一旦进入,使用 Ctrl+A 然后 n 浏览所有可用的窗口,直到你想显示的内容出现在分割窗格中。

Read more...

使用 cron 调度自动化任务

cron linux 自动化任务

cron 是一个调度守护进程,它以指定的时间间隔执行任务,这些任务称为 corn 作业,主要用于自动执行系统维护或管理任务。例如,你可以设置一个 cron 作业来自动执行重复的任务,比如备份数据库或数据,使用最新的安全补丁更新系统,检查磁盘空间使用情况,发送电子邮件等等。 cron 作业可以按分钟、小时、日、月、星期或它们的任意组合运行。

cron 的一些优点

以下是使用 cron 作业的一些优点:

你可以更好地控制作业的运行时间。例如,你可以精确到分钟、小时、天等。
它消除了为循环任务逻辑而去写代码的需要,当你不再需要执行任务时,可以直接关闭它。
作业在不执行时不会占用内存,因此你可以节省内存分配。
如果一个作业执行失败并由于某种原因退出,它将在适当的时间再次运行。

安装 cron 守护进程

幸运的是,Fedora Linux 预先配置了运行重要的系统任务来保持系统更新,有几个实用程序可以运行任务例如 cron、anacron、at 和 batch 。本文只关注 cron 实用程序的安装。cron 和 cronie 包一起安装,cronie 包也提供 cron 服务。

要确定软件包是否已经存在,使用 rpm 命令:

$ rpm -q cronie Cronie-1.5.2-4.el8.x86_64

如果安装了 cronie ,它将返回 cronie 包的全名。如果你的系统中没有安装,则会显示未安装。

使用以下命令安装:

$ dnf install cronie

运行 cron 守护进程

cron 作业由 crond 服务来执行,它会读取配置文件中的信息。在将作业添加到配置文件之前,必须启动 crond 服务,或者安装它。什么是 crond 呢?crond 是 cron 守护程序的简称。要确定 crond 服务是否正在运行,输入以下命令:

Read more...

Hello world

about

Hello World!

^_^
Previous Page 9 of 9