小编iEl*_*ric的帖子

Logrotate 创建长名称并且不删除日志

postgres_db_dump_20091016.gz.1.1.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021
postgres_db_dump_20091017.gz.1.1.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021
postgres_db_dump_20091018.gz.1.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021
postgres_db_dump_20091019.gz.1.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021
postgres_db_dump_20091020.gz.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021
postgres_db_dump_20091021.gz.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021
Run Code Online (Sandbox Code Playgroud)

这是我强制运行 logrotate 时的示例输出(文件名)。不知何故,它无法识别旧文件。

调试输出示例:

glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding old rotated logs failed
renaming /var/backup/postgres/postgres_db_dump_20091019.gz.1.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021 to /var/backup/postgres/postgres_db_dump_20091019.gz.1.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021
rotating log /var/backup/postgres/postgres_db_dump_20091020.gz.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021, log->rotateCount is 4
dateext suffix '-20091021'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding old rotated logs failed
renaming /var/backup/postgres/postgres_db_dump_20091020.gz.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021 to /var/backup/postgres/postgres_db_dump_20091020.gz.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021
rotating log /var/backup/postgres/postgres_db_dump_20091021.gz.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021, log->rotateCount is 4
dateext suffix '-20091021'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding old rotated logs failed
renaming /var/backup/postgres/postgres_db_dump_20091021.gz.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021 to /var/backup/postgres/postgres_db_dump_20091021.gz.1.1.1.1.1.1.1.1.1-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021-20091021
Run Code Online (Sandbox Code Playgroud)

和配置文件:

daily
rotate 4
create 666 root root
maxage 30
dateext
compress
missingok …
Run Code Online (Sandbox Code Playgroud)

linux logrotate

7
推荐指数
3
解决办法
8318
查看次数

如何告诉 start-stop-daemon 根据 --chuid 参数更新 $HOME 和 $USER

我正在尝试运行使用$HOME$USER环境变量的服务。我可以将它们设置为服务本身,但这只是一个临时解决方案。

假设我有一个test.sh包含以下内容的脚本:

echo $USER
Run Code Online (Sandbox Code Playgroud)

我运行它start-stop-daemon以查看我的结果:

$ start-stop-daemon --start --exec `pwd`/test.sh --user guest --group guest --chuid -guest
root
Run Code Online (Sandbox Code Playgroud)

好像它没有更新环境,也许应该报告为错误?

我发现了一个讨厌的hacky解决方案,它只在我这个简单的用例中有效(原因不明):

$ start-stop-daemon --exec /usr/bin/sudo --start -- -u guest -i 'echo $USER'
guest
Run Code Online (Sandbox Code Playgroud)

我敢肯定其他人偶然发现了这一点,我对干净的解决方案感兴趣。

$ start-stop-daemon --version
start-stop-daemon 1.13.11+gentoo
Run Code Online (Sandbox Code Playgroud)

linux users home-directory environment-variables

6
推荐指数
1
解决办法
1万
查看次数