Commit 5a2898f1 authored by Paul E. McKenney's avatar Paul E. McKenney
Browse files

torture: Protect kvm-remote.sh directory trees from /tmp reaping



The kvm-remote.sh script places the datestamped directory containing
all the build artifacts in the destination systems' /tmp directories,
where they accumulate runtime artifacts such as console.log.  This works,
but some systems have a habit of removing files in /tmp that have not
been recently accessed.  This commit therefore runs a simple script that
periodically accesses all files in the datestamped directory.

Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
parent 442f99af
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0+
#
# Periodically scan a directory tree to prevent files from being reaped
# by systemd and friends on long runs.
#
# Usage: kvm-remote-noreap.sh pathname
#
# Copyright (C) 2021 Facebook, Inc.
#
# Authors: Paul E. McKenney <paulmck@kernel.org>

pathname="$1"
if test "$pathname" = ""
then
	echo Usage: kvm-remote-noreap.sh pathname
	exit 1
fi
if ! test -d "$pathname"
then
	echo  Usage: kvm-remote-noreap.sh pathname
	echo "       pathname must be a directory."
	exit 2
fi

while test -d "$pathname"
do
	find "$pathname" -type f -exec touch -c {} \; > /dev/null 2>&1
	sleep 30
done
+2 −1
Original line number Diff line number Diff line
@@ -124,10 +124,11 @@ awk < "$rundir"/scenarios -v dest="$T/bin" -v rundir="$rundir" '
	n = $1;
	sub(/\./, "", n);
	fn = dest "/kvm-remote-" n ".sh"
	print "kvm-remote-noreap.sh " rundir " &" > fn;
	scenarios = "";
	for (i = 2; i <= NF; i++)
		scenarios = scenarios " " $i;
	print "kvm-test-1-run-batch.sh" scenarios > fn;
	print "kvm-test-1-run-batch.sh" scenarios >> fn;
	print "sync" >> fn;
	print "rm " rundir "/remote.run" >> fn;
}'