linux进阶 --- 环境搭建、单一执行、循环执行

news2024/9/24 19:23:49

环境搭建

  • 操作环境 : 创建完虚拟机,安装命令行界面的linux操作系统(centos8,rocky8,rhel8)
  • 为服务器配置白名单和安全组 :vim /etc/selinux/config,selinux=disabled
  • (getenforce:查看selinux工作模式)
  • 关闭防火墙 :systemctl  disable firewalld
  • 网络设置 :在NAT模式下,配置至少一个可上网的静态IP
  • 写好yum源(本地源,网络源)
  • 安装好相应的常用工具 :vim,netstat,bash-completion,chrony
  • 让你的系统时间可以自动根据时间服务器进行同步
  • 写好当前局域网内主机的hosts文件
  • 做快照

getenforce:查看selinux工作模式

  • enforcing:强制模式:会组织进程访问对应的资源(不符合selinux策略规则的情况)。
  • permissive:宽容模式:只会有告警,不会阻止进程来访问资源
  • disabled:关闭selinux

临时更改:将其改为permissive模式

 (告警会打印到 /var/log/messages/ 文件中)

永久修改:修改配置文件


服务设置

  • systemctl  start/stop/restart  service_name : 启动/停止/重启服务
  • systemctl  status  service_name:查看服务状态
  • systemctl  enable  service_name:设置开机自启动服务
  • systemctl  disable  service_name:禁用服务

yum源配置

1>查看本地的repo文件
[root@localhost yum.repos.d]# ll
total 4
-rw-r--r--. 1 root root 358 Jun  4 00:35 redhat.repo

1>修改名字,让其失效
[root@tianqinwei yum.repos.d]# mv redhat.repo redhat.repo.bak
 
3>进入vim编辑
[root@tianqinwei yum.repos.d]# vim rhel8.repo
[BaseOS]
name=BaseOS
baseurl=https://mirrors.aliyun.com/centos/8.5.2111/BaseOS/x86_64/os/
gpgcheck=0
 
[AppStream]
name=AppStream
baseurl=https://mirrors.aliyun.com/centos/8.5.2111/AppStream/x86_64/os/
gpgcheck=0
 
4>检查
[root@tianqinwei yum.repos.d]# yum repolist

单一执行的例行性工作

(1)命令:at ---> atd(服务)

[root@localhost ~]# systemctl status atd
● atd.service - Job spooling tools
   Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2023-06-04 01:03:35 CST; 9h ago
 Main PID: 1017 (atd)
    Tasks: 1 (limit: 11366)
   Memory: 668.0K
   CGroup: /system.slice/atd.service
           └─1017 /usr/sbin/atd -f

Jun 04 01:03:35 localhost.localdomain systemd[1]: Started Job spooling tools.

<1> 使用流程

使用 at 命令来生成所要运行的工作,并将这个工作,以文本方式写入/var/spool/at/目录内,该工作便能等待 atd 这个服务的取用执行了。

[root@localhost ~]# cd /var/spool/at
[root@localhost at]# ll
total 0
drwx------. 2 root root 6 Aug 12  2018 spool

权限分配:/etc/at.allow/etc/at.deny 这两个文件来进行 at 的使用限制

[root@localhost ~]# find /etc/ -name "*.deny"
/etc/hosts.deny
/etc/cron.deny
/etc/at.deny

*:任意字符重复任意多次
?:重复1次以上
{n1..n5}:连续的n1-n5
{n1,n3}:n1,n3文件,不连续

<2> 文件使用权限

  1. 寻找到/etc/at.allow文件存在,写在这个文件的用户才能使用at命令
  2. /etc/at.allow不存在,则寻找/etc/at.deny文件,写在该文件的用户不能使用at命令
  3. 若两个文件都不存在,那么只有root可以使用at命令

PS:假设系统上的所有用户都是可信任的,所以允许所有人使用 at 命令,/etc/at.deny 文件为空,如果你想设置拒绝某人使用 at 命令,你可将该用户写入/etc/at.deny文件

<3> 命令格式:

附:命令的三个组成部分:what,how,who

  • cmd  -->  what,做什么
  • option  -->  how,如何去做
  • arg  -->  who,对谁做

例:建立邮件收发

<1> 下载sendmail和mailx软件
[root@localhost at]# yum install sendmail -y
[root@localhost at]# yum install mailx -y

<2> 启动sendmail
[root@localhost ~]# systemctl start sendmail

<3> 发送邮件
[root@localhost ~]# echo "this is a first email" | mail -s "email" student
发送对象为:student
发送邮件的命令:mail 
设置邮件标题:-s
邮件内容为:"this is a first email"

<4> 查看接收情况
[root@localhost ~]# su - student
[student@localhost ~]$ mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/student": 1 message 1 new
>N  1 root                  Sun Jun  4 11:52  21/862   "email"
& 

<5> 到/etc/mail.rc文件末尾进行添加内容
vim /etc/mail.rc(G:到文件尾部)

# 开启ssl
set ssl-verify=ignore
# 下方输入证书目录,为centos系统证书默认位置,自行生成证书并指定
set nss-config-dir=/etc/pki/nssdb

# 下方填入配置的第三方smtp服务器的地址以及端口号,如果使用云服务器,安全组需要开放465端口(入口和出口)
set smtp=smtps://smtp.163.com:465
# 认证方式
set smtp-auth=login
# 下方输入用于发送邮件的邮箱账号
set smtp-auth-user=xxxx@163.com
# 下方输入上方邮箱的客户端授权码
set smtp-auth-password=XXXXXXXXXX
# 设置发信人的邮箱和昵称
set from=xxxx@163.com

<6> 发送邮件
echo "this is a first email" | mail -s "email"  xxxx@163.com

命令:at [参数] [时间]

参数

说明

-m

当任务完成之后,即使没有标准输出,将给用户发送邮件

-l

atq的别名,可列出目前系统上面的所有该用户的at调度

-d

atrm的别名,可以取消一个在at调度中的工作

-v(verbose)

使用较明显的时间格式,列出at调度中的任务列表

-c

可以列出后面接的该项工作的实际命令内容

-f

从文件中读取作业

时间格式:

参数

说明

HH:MM

在今天的HH小时MM分钟执行,如果今天的这个时间点已经过了,则明天执行

HH:MM YYYY-MM-DD

强制规定在某年某月的某一天的特殊时刻进行该工作

now + 2 minutes

从现在开始几分钟minutes, hours, days, or weeks

(2)示例:

例一:设置定时任务

<1> 提前在文件中输入文字
[root@localhost ~]# echo "1234" > /root/20230605/at_task 
[root@localhost ~]# more at_task
more: stat of at_task failed: No such file or directory
[root@localhost ~]# cd /root/20230605/
[root@localhost 20230605]# more at_task 
1234

<2> 设置定时任务
[root@localhost ~]# at now + 2 minutes
warning: commands will be executed using /bin/sh
at> echo "5678" > /root/20230605/at_task
at> <EOT>
job 2 at Mon Jun  5 09:21:00 2023
(ctrl+d -- 结束输入)

<3> 查看文件
[root@localhost ~]# cd /root/20230605/
[root@localhost 20230605]# more at_task
5678

例二:命令使用

-l
[root@localhost ~]# at now + 2 minutes
warning: commands will be executed using /bin/sh
at> wall hello
at> <EOT>
job 3 at Mon Jun  5 09:27:00 2023
[root@localhost ~]# at -l
4       Mon Jun  5 09:27:00 2023 a root
[root@localhost ~]# atq
4       Mon Jun  5 09:27:00 2023 a root

-d
[root@localhost ~]# at -l
4       Mon Jun  5 09:32:00 2023 a root
[root@localhost ~]# at -d 4
[root@localhost ~]# at -l

循环执行的例行性工作

(1)命令:crontab -> crond

循环执行的例行性工作调度是由crond这个系统服务来控制的。同样,我们也可以限制使用crontab的用户账号。

<1> 使用流程

使用 crontab 命令来生成所要运行的工作,每一项工作都会被记录到/var/log/cron这个日志文件中,该工作便能等待 crontab 这个服务的取用执行了。

<2> 文件使用权限

  1. /etc/cron.allow 将可以使用 crontab 的账号写入其中,若不在该文件内的用户 则不可使用 crontab
  2. /etc/cron.deny 将不可以使用 crontab 的账号写入其中,若不在该文件内的用 户则使用 crontab。
  3. 当用户使用 crontab 新建工作调度之后,该项工作就会被记录到/var/spool/cron/里面

<3> 命令格式:

命令:crontab [-u user] [-l | -r | -e]

参数

说明

-u

只有 root 才能进行这个任务,帮某个用户新建/删除 crontab

-e

编辑 crontab 的工作内容

-l

查阅 crontab 的工作内容

-r

删除所有的 crontab 的工作内容

编辑crontab:

[root@localhost ~]# crontab -e	(相当于使用vim打开了一个文件)

写入6个字段:
(前5个字段:代表周期 --- 使用空格进行分割)
第1个字段:分钟:0-59
第2个字段:小时:0-23
第3个字段:月中天:1-31
第4个字段:月份:1-12
第5个字段:星期:0-7. 0-7都代表星期天

第6个字段:执行一个命令(任务)

代表意义

分钟

小时

日期

月份

命令

数字范围

0-59

0-23

1-31

1-12

0-7<br/>0和7都代表周日

执行的命令

特殊字符:

特殊字符

含义

*

代表任何时刻

代表分隔时段

-

代表一段时间范围

/数字

指定时间的间隔频率,例如每 3 分钟进行一次,*/3

(2)案例

编辑每周1-5早上八点的闹钟(root/student)

[root@localhost ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@localhost ~]# crontab -l
0 8 * * 1-5 echo "alarm clock" >> /root/cron_task
[root@localhost ~]# ls -l /var/spool/cron/ --- 查看文件内容
total 4
-rw-------. 1 root root 51 Jun  5 10:41 root
[root@localhost ~]# cat /var/spool/cron/root
0 8 * * 1-5 echo "alarm clock" >> /root/cron_task

[root@localhost ~]# crontab -u student -e
no crontab for student - using an empty one
crontab: installing new crontab
[root@localhost ~]# crontab -u student -l
0 8 * * 1-5 echo "alarm clock" >> /root/cron_task

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/610993.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python图片处理教程

Python 图片处理教程 Python 是一种功能强大的编程语言&#xff0c;广泛应用于大量不同的行业和领域。其中之一是图像处理和分析。Python 提供了一个庞大的图像库&#xff0c;其拥有大量的工具和函数。Python 图像库具有高度的可扩展性&#xff0c;可以很容易地将其与其他库集…

图解LeetCode——199. 二叉树的右视图

一、题目 给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 二、示例 2.1> 示例 1: 【输入】 [1,2,3,null,5,null,4] 【输出】 [1,3,4] 2.2> 示例 2: 【输入】 [1,null,3] …

ipad笔买原装还是平替?苹果平替电容笔推荐

我认为苹果的电容笔跟一般的电容笔最大的不同就是&#xff0c;苹果原装电容笔有一种特殊的重力压感&#xff0c;可以让我们在纸上感受到最真实的线条粗细变化&#xff0c;用来作画再合适不过了。这是市场上普通电容笔所不具备的功能特性。除了这些&#xff0c;这两款电容笔在写…

【启扬方案】助力智能制造,MES系统解决方案

近年来&#xff0c;智能制造席卷全球&#xff0c;越来越多的制造企业开始采用智能化的生产制造方式&#xff0c;智能工厂作为智能制造的核心之一&#xff0c;成为了制造业发展的重要趋势之一。然而&#xff0c;要实现智能工厂的建设&#xff0c;需涵盖从生产计划、生产调度到生…

安卓调试|入门扫盲必备adb调试工具介绍、安装使用说明

欢迎关注「全栈工程师修炼指南」公众号 点击 &#x1f447; 下方卡片 即可关注我哟! 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习&#xff01; “ 花开堪折直须折&#xff0c;莫待无花空折枝。 ” 作者主页&#xff1a;[ https://www.weiyigeek.top ] 博客&…

11 Redis大厂真实需求落地案例实战

案例实战&#xff1a;微信抢红包 需求分析 各种节假日&#xff0c;发红包抢红包&#xff0c;不说了&#xff0c;100%高并发业务要求&#xff0c;不能用mysql来做一个总的大红包&#xff0c;会有可能拆分成多个小红包&#xff0c;总金额 分金额1分金额2分金额3…分金额N每个人…

【Python编程从入门到实践第一版】P1 变量的命名规则

变量的命名规则 在python中使用变量时&#xff0c;需要遵守一些规则&#xff1a; 变量名只能包含字母、数字和下划线&#xff1b;变量名不能以数字开头&#xff0c;但是可以以字母后者下划线开头&#xff1b;变量名不能包含空格&#xff1b;Python关键字以及函数名不能用作变量…

2.3 基于reactor的HTTP服务器实现

目录 一、基于reactor的HTTP服务器实现二、实现按行读取三、HTTP服务器的收—实现requets函数四、HTTP服务器的发—实现response函数方法之一&#xff1a;open and read五、HTTP服务器的发—实现response函数方法之二&#xff1a;sendfile()1、sendfile函数2、实现3、结果展示 …

面对数据量大的情况如何进行优化?

前后端如何实现 前端展示的优化后端算法的支持1. 分治算法简介基本步骤关键点举例总结 2. 哈希算法简介特点应用 3. 位图&#xff08;BitMap &#xff09;算法简介实现步骤 4. 布隆过滤器&#xff08;Bloom Filter&#xff09;简介工作流程总结 5. 堆排序工作流程总结 前端展示…

港联证券|A股中长期投资价值显现

种种迹象显示&#xff0c;近期A股市场底部特征愈加明显。业内人士指出&#xff0c;当前市场已进入价值投资区域。而从中长期来看&#xff0c;中国经济的复苏前景和高质量发展趋势&#xff0c;为中国资本市场的长期投资价值奠定了基础。 底部特征浮现 2023年以来&#xff0c;A股…

【云原生】Docker网络原理及数据卷、书卷容器、容器互联

docker网络模式的特性 docker初始状态下有三种默认的网络模式 &#xff0c;bridg&#xff08;桥接&#xff09;&#xff0c;host&#xff08;主机&#xff09;&#xff0c;none&#xff08;无网络设置&#xff09; docker network ls 网络模式配置说明host//主机模式–networ…

linuxOPS基础_使用客户端连接linux

ssh概念及其工作流程 ssh概念及其工作流程—>跳转 常用SSH终端工具 SecureCRT 官网&#xff1a;www.vandyke.com SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序&#xff0c;简单地说是Windows下登录UNIX或Linux服务器主机的软件。 XShell 官网&#xff1a;www.ne…

【SpringMVC学习】SSM整合

文章目录 配置准备1. 新建工程项目2. 引入配置文件配置config 功能模块开发数据库与POJO配置Dao和Service和Controller的配置测试接口功能 配置准备 1. 新建工程项目 使用webapp模版生成maven项目 配置相关文件功能 2. 引入配置文件配置config pom.xml <?xml version…

word文件加密怎么操作?1分钟就可以轻松实现!

案例&#xff1a;我经常使用word文章整理一些资料&#xff0c;有些资料比较重要&#xff0c;我不希望别人可以随意打开它。听说可以对word文档进行加密&#xff0c;具体应该怎么操作&#xff1f; 随着数字化时代的到来&#xff0c;电子文档在我们的日常生活和工作中扮演着越来…

chatgpt赋能python:Python噪音数据处理:一个有效的解决方案

Python噪音数据处理&#xff1a;一个有效的解决方案 Python作为一种强大的编程语言&#xff0c;在数据处理领域有着广泛的应用。可以用Python来处理许多不同类型的数据&#xff0c;其中包括噪音数据。噪音数据通常被定义为意外的或不需要的信号&#xff0c;这些信号可能会影响…

创业第一步:如何写好商业计划书

即使你的项目不需要融资&#xff0c;你也把标准商业计划书作为一个工具模板来应用&#xff0c;帮助更全面的盘点你要做的事情。 撰写一份性感的商业计划书如同造房子&#xff1a;第一步是科学设计&#xff0c;打好结构&#xff08;有清晰的撰写逻辑&#xff09;&#xff1b;第…

std::remove cannot convert ‘std::vector<std::__cxx11::basic_string<char> >:: 报错

最近遇到一个非常奇怪C++的问题: vector<string> tmp;tmp.erase(std::remove(tmp.begin(), tmp.end(), Routers[i].name_), tmp.end());在Windows下的VS中编译没有任何问题。 但是在Linux 下的 g++下面报错: 解决方法,包含头文件: #include <algorithm&g…

真无线蓝牙耳机推荐,八款口碑最好的真无线蓝牙耳机排行榜

真无线&#xff08;TWS&#xff09;耳机是近年来最流行的耳机品类&#xff0c;与传统有线或蓝牙耳机相比&#xff0c;它们具有更好的自由度和移动性。而除了常规的柄状和豆状形态的产品&#xff0c;现在市面上出现了越来越多拥有特殊形态的TWS耳机&#xff0c;它们在设计上更加…

执行dotnet ef database update EF同步数据表时报错 Duplicate column name ‘xxx‘

1、问题背景描述&#xff1a; 我为abpnext项目加了一个新表的业务代码。 然后执行了 dotnet ef database update 结果返回错误提示 Duplicate column name ExtraProp&#xff0c;翻译过来就是字段重复。如下图所示 然后我打开新增加的init代码初始化文件&#xff0c;发现他居…

设计模式之不一样的责任链模式

责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为型设计模式&#xff0c;它通过将请求的发送者和接收者解耦&#xff0c;使多个对象都有机会处理请求。在这个模式中&#xff0c;请求沿着一个处理链依次传递&#xff0c;直到有一个对象能够处理它为…