我在从 crontab 运行脚本时遇到问题。经过一番研究,我明白这个问题是因为 PATH 参数不包含 /sbin。
我查看了 /etc/crontab 中包含的内容:
PATH=/sbin:/bin:/usr/sbin:/usr/bin
Run Code Online (Sandbox Code Playgroud)
作为测试 - 打印 PATH 变量的简单 cron 作业:
* * * * * echo $PATH &> /root/TMP.log
Run Code Online (Sandbox Code Playgroud)
输出是:
cat /root/TMP.log
/usr/bin:/bin
Run Code Online (Sandbox Code Playgroud)
我不明白这种行为...如何设置 PATH 变量..?或者更好 - 如何向它添加路径?
我需要从文件夹中删除早于特定文件的所有文件。
在 CentOS 7 上运行 bash。
我对此有一个解决方案,但我认为应该有一种更优雅的方法:
reference_file=/my/reference/file
get_modify_time()
{
stat $1 | grep -Po "Modify: \K[0-9- :]*"
}
pit=$(get_modify_time $reference_file)
for f in /folder/0000* ; do [[ "$pit" > "$(get_modify_time $f)" ]] && rm $f ; done
Run Code Online (Sandbox Code Playgroud) 我正在使用 centos 7,并且在将网络接口从 dhcp 设置为静态 ip 配置时出现问题。
我编辑/etc/resolv.conf
并运行systemctl restart network.service
我所做的更改消失了,并创建了一个通用文件:
cat /etc/resolv.conf
# Generated by NetworkManager
# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com
Run Code Online (Sandbox Code Playgroud)
注意:ifcfg-ens160 文件中的 PEERDNS="yes"。
PEERDNS=,其中是以下之一: yes — 如果设置了 DNS 指令,则修改 /etc/resolv.conf。如果使用 DHCP,则是默认值。
no — 不修改 /etc/resolv.conf。
取自此处:https : //access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/Reference_Guide/s1-networkscripts-interfaces.html
我想这与它有关,但是在设置为 dhcp 时它运行良好,所以我希望如果它/etc/resolv.conf
自动配置它会成功。
解决方法是/etc/resolv.conf
在服务重新启动后进行编辑。
但是我想了解这种行为,以及如何避免将文件重置为此默认失败消息。
我正在运行 centos 7 服务器。
我想更改根文件系统(xfs)的标签。
xfs_admin -L "newlabel" /dev/mapper/centos-root
失败是因为它无法在已安装的文件系统上运行。
是否可以更改已安装文件系统的标签?
有没有办法在安装根文件系统之前在引导期间运行类似的东西?
centos ×4
bash ×1
boot ×1
cron ×1
dns ×1
linux ×1
path ×1
resolvconf ×1
shell-script ×1
xfs ×1