echo > adm_messages
时间: 2024-08-15 13:10:51 浏览: 32
在Linux命令行中,`echo > adm_messages` 是一个命令,它用于清空或创建一个名为 "adm_messages" 的文件。如果该文件已经存在,这个命令会将文件内容替换为空;如果文件不存在,则会创建一个新的空文件。`echo` 命令在这里实际上并不重要,因为它的作用是在标准输出上打印一条消息,但在管道 (`>` 或 `>|`) 后跟随的是一个文件名,意味着输出会被直接导向到指定的文件,而不是屏幕。
相关问题
def register_admin(self): adm_id = uop.generate_unique_user_id() adm_unm = 'daddy_daddy' adm_pswd = 'daddy' adm_time = datetime.datetime.now().strftime("%Y-%m-%d_%H:%M:%S") adm_role = 'admin' register = Admin(adm_id,adm_unm,adm_pswd,adm_time,adm_role) str_register = eval(str(register)) str_register['user_password'] = uop.encrypt_password(adm_pswd) with open('./data/user.txt','w') as f1: f1.write(str_register + '\n')为什么我这里会有AttributeError: 'str' object has no attribute 'user_id'?
在你的代码中,`str_register`是一个字符串类型的对象,而非Admin对象。你在将`register`对象转换为字符串时,使用了`eval()`函数,这个函数将字符串转换为Python对象,但是这里的字符串并不符合Python对象的格式,因此会出现错误。
正确的做法应该是将`register`对象转换为字典类型的对象,然后再将这个字典对象转换为字符串,这样就可以正确地写入到文件中了。可以按照以下方式修改你的代码:
```python
def register_admin(self):
adm_id = uop.generate_unique_user_id()
adm_unm = 'daddy_daddy'
adm_pswd = 'daddy'
adm_time = datetime.datetime.now().strftime("%Y-%m-%d_%H:%M:%S")
adm_role = 'admin'
register = Admin(adm_id, adm_unm, adm_pswd, adm_time, adm_role)
register_dict = {
'user_id': register.user_id,
'user_name': register.user_name,
'user_password': uop.encrypt_password(adm_pswd),
'user_register_time': register.user_register_time,
'user_role': register.user_role
}
str_register = str(register_dict)
with open('./data/user.txt', 'w') as f1:
f1.write(str_register + '\n')
```
这样就可以正确地将Admin对象写入到文件中了。注意,这里使用的是字典类型的对象,而非字符串类型的对象。
/var/adm/messages
/var/adm/messages是一个日志文件,记录了系统的运行信息和认证信息。它是系统日志目录中的一个文件,可以通过编辑/etc/rsyslog.conf配置rsyslog来启用安全事件日志记录。在/var/adm/messages中,你可以查看系统的运行信息和认证信息,对于追查恶意用户的登陆行为有很大帮助。如果日志中出现连续大量的登录错误信息,则可能意味着远程主机在尝试破解SSH登录口令。你可以使用last命令查看最近用户登录情况,该命令读取wtmp内容。你也可以使用lastlog命令查看系统内所有账户最后一次登录信息,该命令读取/var/log/lastlog内容。