Skip to content

Commit 4aa7c0f

Browse files
committed
Print timestamp in log messages
1 parent 289c6e9 commit 4aa7c0f

File tree

2 files changed

+39
-19
lines changed

2 files changed

+39
-19
lines changed

client/entrypoint.sh

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
#!/bin/sh
22

3+
log_with_timestamp() {
4+
echo -e "$1" | awk '{ print strftime("[%Y-%m-%d %H:%M:%S%z]"), $0 }'
5+
}
6+
37
# Ensure the script is not run by the "root" user.
48
if [ "$(id -u)" == "0" ]; then
5-
echo "This image should not be run as the 'root' user. Exiting..."
6-
exit 1
7-
fi
8-
9-
if [ -z "${SSH_HOSTNAME}" ]; then
10-
echo "SSH_HOSTNAME is not set. Exiting..."
9+
log_with_timestamp "This image should not be run as the 'root' user. Exiting..."
1110
exit 1
1211
fi
1312

@@ -23,6 +22,16 @@ export LD_PRELOAD=/usr/lib/libnss_wrapper.so NSS_WRAPPER_PASSWD=/tmp/passwd NSS_
2322
mkdir -p "${HOME}/.ssh"
2423
chmod -R 700 "${HOME}"
2524

25+
log_with_timestamp "\033[1;34mWelcome to docker-ssh/client!\033[0m"
26+
log_with_timestamp "\033[1;32m Alpine: \033[0m $(cat /etc/alpine-release)"
27+
log_with_timestamp "\033[1;32m OpenSSH: \033[0m $(ssh -V 2>&1)"
28+
log_with_timestamp "\033[1;32m Rsync: \033[0m $(rsync --version | head -n 1)"
29+
30+
if [ -z "${SSH_HOSTNAME}" ]; then
31+
log_with_timestamp "SSH_HOSTNAME is not set. Exiting..."
32+
exit 1
33+
fi
34+
2635
################################
2736
# setup keys #
2837
################################
@@ -31,18 +40,18 @@ if [ -n "${CLIENT_ED25519_PRIVATE_KEY_FILE}" ]; then
3140
if [ "${CLIENT_ED25519_PRIVATE_KEY_FILE}" != "${HOME}/.ssh/id_ed25519" ]; then
3241
cp "${CLIENT_ED25519_PRIVATE_KEY_FILE}" "${HOME}/.ssh/id_ed25519"
3342
chmod 600 "${HOME}/.ssh/id_ed25519"
43+
log_with_timestamp "Installed private key from key file."
3444
fi
35-
echo "Installed private key from key file."
3645
else
37-
echo "'${CLIENT_ED25519_PRIVATE_KEY_FILE}' is not readable. Exiting..."
46+
log_with_timestamp "'${CLIENT_ED25519_PRIVATE_KEY_FILE}' is not readable. Exiting..."
3847
exit 1
3948
fi
4049
elif [ -n "${CLIENT_ED25519_PRIVATE_KEY_BASE64}" ]; then
4150
echo "${CLIENT_ED25519_PRIVATE_KEY_BASE64}" | base64 -d >"${HOME}/.ssh/id_ed25519"
4251
chmod 600 "${HOME}/.ssh/id_ed25519"
43-
echo "Installed private key from env var."
52+
log_with_timestamp "Installed private key from env var."
4453
else
45-
echo "No private key provided. Exiting..."
54+
log_with_timestamp "No private key provided. Exiting..."
4655
exit 1
4756
fi
4857

@@ -54,7 +63,7 @@ if [ -n "${SERVER_ED25519_PUBLIC_KEY}" ]; then
5463
fi
5564
chmod 600 "${HOME}/.ssh/known_hosts"
5665
else
57-
echo "SERVER_ED25519_PUBLIC_KEY is not set. Exiting..."
66+
log_with_timestamp "SERVER_ED25519_PUBLIC_KEY is not set. Exiting..."
5867
exit 1
5968
fi
6069

@@ -93,8 +102,10 @@ export AUTOSSH_POLL="${AUTOSSH_POLL:-30}"
93102
# run/schedule the command #
94103
################################
95104
if [ -n "${SCHEDULE}" ]; then
105+
log_with_timestamp "Scheduling command..."
96106
echo "${SCHEDULE} ${SCHEDULE_CMD}" >"${HOME}/crontab"
97107
exec supercronic "${HOME}/crontab"
98108
else
99-
exec "$@"
109+
log_with_timestamp "Running $1..."
110+
exec "$@" 2>&1 | awk '{ print strftime("[%Y-%m-%d %H:%M:%S%z]"), $0 }'
100111
fi

server/entrypoint.sh

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
#!/bin/sh
22

3+
log_with_timestamp() {
4+
echo -e "$1" | awk '{ print strftime("[%Y-%m-%d %H:%M:%S%z]"), $0 }'
5+
}
6+
37
# Ensure the script is not run by the "root" user.
48
if [ "$(id -u)" == "0" ]; then
5-
echo "This image should not be run as the 'root' user. Exiting..."
9+
log_with_timestamp "This image should not be run as the 'root' user. Exiting..."
610
exit 1
711
fi
812

@@ -18,6 +22,11 @@ export LD_PRELOAD=/usr/lib/libnss_wrapper.so NSS_WRAPPER_PASSWD=/tmp/passwd NSS_
1822
mkdir -p "${HOME}/sshd" "${HOME}/.ssh"
1923
chmod -R 700 "${HOME}"
2024

25+
log_with_timestamp "\033[1;34mWelcome to docker-ssh/server!\033[0m"
26+
log_with_timestamp "\033[1;32m Alpine: \033[0m $(cat /etc/alpine-release)"
27+
log_with_timestamp "\033[1;32m OpenSSH: \033[0m $(sshd -V 2>&1)"
28+
log_with_timestamp "\033[1;32m Rsync: \033[0m $(rsync --version | head -n 1)"
29+
2130
################################
2231
# setup host key #
2332
################################
@@ -26,18 +35,18 @@ if [ -n "${SERVER_ED25519_PRIVATE_KEY_FILE}" ]; then
2635
if [ "${SERVER_ED25519_PRIVATE_KEY_FILE}" != "${HOME}/sshd/ssh_host_ed25519_key" ]; then
2736
cp "${SERVER_ED25519_PRIVATE_KEY_FILE}" "${HOME}/sshd/ssh_host_ed25519_key"
2837
chmod 600 "${HOME}/sshd/ssh_host_ed25519_key"
38+
log_with_timestamp "Installed host key from key file."
2939
fi
30-
echo "Installed host key from key file."
3140
else
32-
echo "'${SERVER_ED25519_PRIVATE_KEY_FILE}' is not readable. Exiting..."
41+
log_with_timestamp "'${SERVER_ED25519_PRIVATE_KEY_FILE}' is not readable. Exiting..."
3342
exit 1
3443
fi
3544
elif [ -n "${SERVER_ED25519_PRIVATE_KEY_BASE64}" ]; then
3645
echo "${SERVER_ED25519_PRIVATE_KEY_BASE64}" | base64 -d >"${HOME}/sshd/ssh_host_ed25519_key"
3746
chmod 600 "${HOME}/sshd/ssh_host_ed25519_key"
38-
echo "Installed host key from env var."
47+
log_with_timestamp "Installed host key from env var."
3948
else
40-
echo "No private key provided. Exiting..."
49+
log_with_timestamp "No private key provided. Exiting..."
4150
exit 1
4251
fi
4352

@@ -50,7 +59,7 @@ fi
5059
# configure authorized_keys #
5160
################################
5261
if [ -z "${CLIENT_AUTHORIZED_KEYS}" ]; then
53-
echo "CLIENT_AUTHORIZED_KEYS is not set. Exiting..."
62+
log_with_timestamp "CLIENT_AUTHORIZED_KEYS is not set. Exiting..."
5463
exit 1
5564
else
5665
# Split the CLIENT_AUTHORIZED_KEYS variable by semicolon and add each to authorized_keys
@@ -92,4 +101,4 @@ AllowUsers sshuser
92101
################################
93102
# Start sshd #
94103
################################
95-
exec /usr/sbin/sshd -D -e -f "${HOME}/sshd/sshd.conf"
104+
exec /usr/sbin/sshd -D -e -f "${HOME}/sshd/sshd.conf" 2>&1 | awk '{ print strftime("[%Y-%m-%d %H:%M:%S%z]"), $0 }'

0 commit comments

Comments
 (0)