Ubuntu 16.04LTS Создать Cron Job в cron.daily, который будет отображать содержимое auth.log в папке в каждом домашнем каталоге пользователя?

Пользователь Ubuntu 16.04 LTS

Привет, ребята, я здесь новичок, и я безуспешно искал эти форумы и Google. Мои поиски не нашли нужную мне информацию.

Это мой личный проект, который поможет мне привыкнуть к настройке системных заданий и сценариев, которые будут выполняться ежедневно / ежемесячно / в любое время.

Я уже (неэффективно) создал несколько папок для 10-12 пользователей на моей машине с Ubuntu, куда я хочу, чтобы эта работа шла. Он находится в их домашнем каталоге в папке с названием «ulogs». В этой папке, я надеюсь, у меня будут различные системные задания, которые я создаю, сохраняя файлы для каждого пользователя в системе.

Я знаю, что эта работа должна быть создана в cron.daily как скрипт. Я знаю, как часто я хочу запускать его, возможно, два раза в день в какой-то момент, но сейчас буду начинать с одного раза в день.

В скрипте, что такое протокол для сохранения содержимого / конечного результата задания в папку, которую я создал и выбрал, где я хочу сохранить текстовый файл задания?

Для этой работы я хочу сохранить содержимое файла auth.log (скрипт cron в основном "cat /var/log/auth.log> /home/Users(1-12)/ulogs/daily-signin.txt" )

Какие переменные я могу использовать вместо того, чтобы вводить имя пользователя и путь к папке, где должен быть сохранен файл.

Я также хочу добавить дату в конец файла, но я сама это выясню, я не могу, чтобы вы, ребята, делали всю работу. Я искал, но отскочил от сайта к сайту и не нашел эффективного способа сохранить файл в пути к папке каждого пользователя.

Пожалуйста, помогите!

1
задан 3 December 2017 в 07:49

1 ответ

Следующая программа создаст текстовый файл с именем daily-signin.txt в каталоге с именем ulogs в домашнем каталоге всех пользователей, если вы запустите его от имени пользователя root.

#!/bin/bash
path="/path/to/source/file";
for p in `cat "$path"`;
do
log=`cat /var/log/auth.log`;
mkdir -p /home/$p/ulogs/
echo "$log" >> /home/$p/ulogs/daily-signin.txt
done

Указывает на примечание

  1. Файл /path/to/source/file содержит список пользователей на вашем компьютере. Если какой-либо новый пользователь создал и вы хотите получить файл журнала в домашнем каталоге этого пользователя, вам необходимо добавить новое имя пользователя в файл source.txt.

  2. Поскольку этот файл создается в домашнем каталоге другого пользователя, вам нужно будет запустить этот сценарий оболочки с sudo privileges

  3. Если вы запускаете этот сценарий как cronjob, вы можете перейти по этой ссылке, чтобы сделать это.

0
ответ дан 3 December 2017 в 07:49

Другие вопросы по тегам:

Похожие вопросы: