Я закончил тем, что проверил пополудни-utils файл журнала, потому что это работает out-of-the-box. Однако это зависит от форматирования пополудни-utils сообщения журнала, таким образом, это могло порвать с новыми версиями пополудни-utils.
Это в настоящее время работает над Дугой Linux и OpenSuSE 11.4/Tumbleweed и вероятно все другие дистрибутивы, которые не исправили пополудни-utils слишком много.
Следующие кодовые наборы NEED_SUSPEND к 1, если машина была разбужена от, приостанавливают в течение прошлых 10 минут (600 секунд):
# Check if we need to suspend afterwards
if [[ -e /var/log/pm-suspend.log ]]; then
RESUME_DATE="$(egrep 'Running hooks for (resume|thaw)' /var/log/pm-suspend.log | tail -n 1 | sed 's/^\(.*\):.*$/\1/')"
if [[ -n "$RESUME_DATE" ]]; then
RESUME_SECS="$(date --date="$RESUME_DATE" +%s)"
NOW_SECS="$(date +%s)"
SECS_SINCE_RESUME=$(( $NOW_SECS - $RESUME_SECS ))
if [[ $SECS_SINCE_RESUME -lt 600 ]]; then
NEED_SUSPEND=1
fi
fi
fi
Вы не можете изменить ctime обычными средствами. Это дизайном: ctime всегда обновляется к току, когда Вы изменяете любые из метаданных файла, и нет никакого способа наложить другой ctime. Для изменения ctime файла необходимо выполнить одно из следующих действий:
debugfs
) и вертите биты на диске (не делайте этого, в то время как файловая система смонтирована).ctime файла обновляется, когда любые из метаданных изменяются.
$ ls -l x.py
-rw-rw-r--. 1 ignacio ignacio 485 Mar 26 2010 x.py
$ stat -c %z x.py
2010-03-26 11:57:56.237068175 -0400
$ chown ignacio x.py
$ stat -c %z x.py
2012-04-08 15:31:33.682383575 -0400
$ ls -l x.py
-rw-rw-r--. 1 ignacio ignacio 485 Mar 26 2010 x.py
У Вас есть ответ на связанном ТАК вопрос, на который указывает jw013, для extX, на размонтированном диске:
# Update ctime
debugfs -w -R 'set_inode_field /tmp/foo ctime 201001010101' /dev/sda1
# Drop vm cache so ctime update is reflected
echo 2 > /proc/sys/vm/drop_caches
Я использую ln
для этого случая. Метаданные изменяются для увеличения и уменьшения счетчика ссылок.
# $file contains the filename
ln "$file" "$file.xxx.tmp"
rm -f "$file.xxx.tmp"
Здесь я использую .xxx.tmp
как расширение для временного файла и надеюсь, что оно не будет использоваться другим.
$NOW=$(date) && date -s "2030-08-15 21:30:11" && touch file.txt && date -s "$NOW"
https://www.shellhacks.com/fake-file-access-modify-change-timestamps-linux