我有一个脚本,当我从命令行运行它时cron
,它可以工作,但是当我用它来安排它时,我收到了找不到文件或命令的错误。我的问题是双重的:
当我使用 调度 cron 作业时crontab -e
,它是否使用我的用户 ID 作为其权限的基础?或者它是否使用某种类型的 cron 用户 ID 及其相关权限?
启动 cron 作业时,工作目录是什么?它是我指定要运行的脚本的目录,还是其他目录?
这是我的 cron 工作:
15 7 * * * /home/xxxx/Documents/Scripts/email_ip_script.sh
Run Code Online (Sandbox Code Playgroud)
这是实际的脚本:
vIP_ADDR="`curl automation.whatismyip.com/n09230945.asp`"
echo "$vIP_ADDR"
sed "s/IPADDR/$vIP_ADDR/g" template.txt > emailmsg.txt
ssmtp XXXXX@gmail.com < emailmsg.txt
Run Code Online (Sandbox Code Playgroud)
以下是我在查看由mail
产生的消息时得到的错误cron
:
sed: can't read template.txt: No such file or directory
/home/xxxx/Documents/Scripts/email_ip_script.sh: line 15: ssmtp: command not found
Run Code Online (Sandbox Code Playgroud)
它找不到,template.txt
但它与脚本位于同一目录中。它也不能运行ssmtp
,但我可以作为我的用户。我缺少什么才能使其正常工作?
我曾经使用 HP-UX 系统工作,老管理员告诉我系统上可以拥有的僵尸进程数量有一个上限,我相信是 1024。
我将 sSMTP 更新到 2.61 版,现在当我尝试使用它时,我收到以下错误:
ssmtp: Cannot open smtp.gmail.com:587
Run Code Online (Sandbox Code Playgroud)
我可以通过 telnet 连接到他们的地址,但 sSMTP 似乎被绊倒了,我不确定更新后发生了什么变化。
这里是 ssmtp.conf
root=XXXXX@gmail.com
mailhub=smtp.gmail.com:587
RewriteDomain=gmail.com
Hostname=localhost
UseTLS=YES
UseSTARTTLS=Yes
AuthUser=XXXXX
AuthPass=XXXXX
FromLineOverride=yes
Run Code Online (Sandbox Code Playgroud)
通过 telnet 连接时的输出:
[root@soupcan sbin]# telnet smtp.gmail.com 587
Trying 74.125.142.108...
Connected to smtp.gmail.com.
Escape character is '^]'.
220 mx.google.com ESMTP l7sm7330049igx.2 - gsmtp
quit
221 2.0.0 closing connection l7sm7330049igx.2 - gsmtp
Connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)
当我尝试使用时的输出 sSMTP
[root@soupcan sbin]# /usr/sbin/ssmtp -v XXXXX@gmail.com < /home/user/Documents/Scripts/msg.txt
[<-] 220 mx.google.com ESMTP f5sm7367852igc.4 - gsmtp
[->] EHLO localhost …
Run Code Online (Sandbox Code Playgroud) 我安装semanage
到我的CentOS 6.2
盒子上,安装后我正在查看我的安全日志并注意到这个条目:
Aug 31 22:12:17 xxxx groupadd[12929]: group added to /etc/group: name=cgred, GID=489
Aug 31 22:12:17 xxxx groupadd[12929]: group added to /etc/gshadow: name=cgred
Aug 31 22:12:17 xxxx groupadd[12929]: new group: name=cgred, GID=489
Run Code Online (Sandbox Code Playgroud)
我找不到有关组的任何信息cgred
我确实找到了这篇关于控制组的Arch Linux Wiki 文章,这是什么?
只是寻找信息以确保我知道我的盒子发生了什么。
我正在运行CentOS 6.2
并nginx
以 root 身份安装。安装后,我将安装的所有者和组更改为它自己的用户和组,以确保更安全。
我以 root 身份登录并运行yum update
更新nginx
,我注意到很多文件所有者组都恢复为 root。
有没有办法在执行更新时保留我想要的所有权?也许以nginx
用户身份登录并执行更新(甚至可能还是推荐?)