目标:检查是否存在包含今天日期的备份 .tgz 文件;输出 1 表示 OK,0 表示没有文件。
我是一个班轮的傻瓜:) 例如在 PHP 中(在 Javascript 中非常相似),在各种情况下我喜欢做类似的事情
<?php
echo (date("d")==1)?"Monday":"Not Monday";
?>
Run Code Online (Sandbox Code Playgroud)
Bash 中是否有类似的语法?我知道如何使用 -f FILENAME 检查常规文件的存在,我只希望命令打印 1 或 0 :)
目标:检查/etc/shadow用户密码是否被锁定,即 /etc/shadow 中包含用户散列密码的第二个字段中的第一个字符是否为感叹号 ('!')
所需的输出:一个名为$disabled“真”或“假”的变量
用户名在$uname变量中,我做这样的事情:
disabled=`cat /etc/shadow |grep $uname |awk -F\: '{print$2}'`
# I now have the password and need one more pipe into the check for the character
# which is where I'm stuck. I would like to do like (in PHP syntax):
| VARIABLE=="!"?"True":"False"`
Run Code Online (Sandbox Code Playgroud)
这是一个脚本片段,它将由 Cron 以 root 权限运行,因此可以访问所有需要的信息。
我有两个包含各种用户数据的 csv 文件;它们共享一个公共字段(用户名)。
file A:
username ; Fullname ; mail
Bob ; Bob Hope ; bob@hope.org
file B:
username ; LastLogonTime ; AccountStatus (locked=0 or unlocked=1)
Bob ; 2018-10-01 etc.; 0
Run Code Online (Sandbox Code Playgroud)
出于审计目的,我想使用 Bash 循环遍历 A,与 B 交叉检查帐户是否被锁定,在这种情况下,我可以将用户邮寄到 A 中的邮件地址。
awk -F";"
Run Code Online (Sandbox Code Playgroud)
让我越过A;这很容易 - 但我在尝试对 B 进行交叉检查循环时不知所措。