[内容] Linux 前台命令的后台执行 (GNOME 版)

内容一:直接执行前台命令

1.1 设置显示变量

# export DISPLAY=":0"

1.2 执行前台命令

# gnome-terminal -x bash -c "ls; exec bash"

(补充:这里以从后台在前台执行 1 次 ls 命令为例)

(注意:此种方法只对连接了显示器的真机 GNOME 桌面有效,对虚拟机的 GNOME 桌面无效)

内容二:周期执行前台命令

# crontab -e

添加以下内容:

......
*/1 * * * * export DISPLAY=":0" && gnome-terminal -x bash -c "ls; exec bash"

(补充:这里以每 1 分钟从后台在前台执行 1 次 ls 命令为例)

(注意:此种方法只对连接了显示器的真机 GNOME 桌面有效,对虚拟机的 GNOME 桌面无效)

[排错] 解决 openSUSE & SLES 切换 root 用户后无法打开图形界面

解决方法

步骤一:获取当前用户的 DISPLAY 变量

> echo $DISPLAY
localhost:10.0

(补充:普通变量是 localhost:10.0)

步骤二:切换 root 用户

> su - root

步骤三:添加普通用户的 key 到 root 用户

# xauth add $(xauth -f ~user1/.Xauthority list | tail -1)

步骤四:在 root 用户下使用普通用户的 DISPLAY 变量

# export DISPLAY=localhost:10.0

(补充:这里的 localhost:10.0 是在前面的步骤中获取的)

[步骤] Linux snmp v1 和 snmp v2 的禁用

步骤一:修改 /etc/snmp/snmpd.conf 配置文件

# vim /etc/snmp/snmpd.conf

将以下内容:

......
group gpublic v1 ......
group gpublic v2c ......
......

修改为:

......
# group gpublic v1 ......
# group gpublic v2c ......
......

步骤二:让修改的 /etc/snmp/snmpd.conf 配置文件生效

# systemctl restart snmpd

[步骤] Linux 周期性计划任务 cron 的设置

步骤一:进入周期任务计划的文件

1.1 案例一:直接进入周期任务计划的文件

# crontab -e

1.2 案例二:以某一个用户的身份进入周期任务计划的文件

# crontab -u root -e

(补充:这里以使用 root 用户的身份进入周期任务计划的文件为例)

步骤二:设置周期任务计划

2.1 设置周期任务计划的格式

<what minute> <what hour> <day of the month> <what month> <day of the week> <command>


补充:
1) 当以上内容是 1 个星号 “*” 时,代表任意时刻都会执行
2) 当在某一个时刻执行时,可以直接写入对应的数字,例如:0,代表在 0 时执行
3) 当同时在多个时刻执行时,可以直接写入多个对应的数字,例如:0,15,30,代表在 0 时、15 时、30 时都会执行
4) 当每隔一段时间就执行时,可以在星号 “*” 后面添加斜杠和间隔的数字,例如:*/5,代表每隔 5 就会执行 1 次
5) 当是执行 /sbin 下的命令时,需要使用命令的全路径
6) 有些特殊符号不会在此地起作用,例如:$(<command>)

2.2 设置周期任务计划的案例

2.2.1 案例一
0 1 * * * curl eternalcenter.com

(补充:此案例会在每天 1 点 0 时访问一次 eternalcenter.com)

2.2.2 案例二
*/5 * * * * curl eternalcenter.com

(补充:此案例会每过 5 分钟访问一次 eternalcenter.com)

2.2.3 案例三
0 0 1,5,10,15 /sbin/reboot

(补充:此案例会在每个月的 1 号 5 号 10 号 15 号的 0 点 0 分重启系统)

步骤三:显示已设置的周期任务计划

3.1 案例一:显示本用户已设置的周期任务计划

# crontab -l

3.2 案例二:以某 1 个用户的身份进入周期任务计划的文件

# crontab -u root -l

(补充:这里以显示 root 用户已设置的周期任务计划为例)

补充:# crontab -e 命令编辑文件的所在位置

如果是 Rocky Linux & RHEL

/var/spool/cron/

如果是 openSUSE & SLES

/var/spool/cron/tabs/