1
1
#! /bin/sh
2
2
3
+ log_with_timestamp () {
4
+ echo -e " $1 " | awk ' { print strftime("[%Y-%m-%d %H:%M:%S%z]"), $0 }'
5
+ }
6
+
3
7
# Ensure the script is not run by the "root" user.
4
8
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..."
11
10
exit 1
12
11
fi
13
12
@@ -23,6 +22,16 @@ export LD_PRELOAD=/usr/lib/libnss_wrapper.so NSS_WRAPPER_PASSWD=/tmp/passwd NSS_
23
22
mkdir -p " ${HOME} /.ssh"
24
23
chmod -R 700 " ${HOME} "
25
24
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
+
26
35
# ###############################
27
36
# setup keys #
28
37
# ###############################
@@ -31,18 +40,18 @@ if [ -n "${CLIENT_ED25519_PRIVATE_KEY_FILE}" ]; then
31
40
if [ " ${CLIENT_ED25519_PRIVATE_KEY_FILE} " != " ${HOME} /.ssh/id_ed25519" ]; then
32
41
cp " ${CLIENT_ED25519_PRIVATE_KEY_FILE} " " ${HOME} /.ssh/id_ed25519"
33
42
chmod 600 " ${HOME} /.ssh/id_ed25519"
43
+ log_with_timestamp " Installed private key from key file."
34
44
fi
35
- echo " Installed private key from key file."
36
45
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..."
38
47
exit 1
39
48
fi
40
49
elif [ -n " ${CLIENT_ED25519_PRIVATE_KEY_BASE64} " ]; then
41
50
echo " ${CLIENT_ED25519_PRIVATE_KEY_BASE64} " | base64 -d > " ${HOME} /.ssh/id_ed25519"
42
51
chmod 600 " ${HOME} /.ssh/id_ed25519"
43
- echo " Installed private key from env var."
52
+ log_with_timestamp " Installed private key from env var."
44
53
else
45
- echo " No private key provided. Exiting..."
54
+ log_with_timestamp " No private key provided. Exiting..."
46
55
exit 1
47
56
fi
48
57
@@ -54,7 +63,7 @@ if [ -n "${SERVER_ED25519_PUBLIC_KEY}" ]; then
54
63
fi
55
64
chmod 600 " ${HOME} /.ssh/known_hosts"
56
65
else
57
- echo " SERVER_ED25519_PUBLIC_KEY is not set. Exiting..."
66
+ log_with_timestamp " SERVER_ED25519_PUBLIC_KEY is not set. Exiting..."
58
67
exit 1
59
68
fi
60
69
@@ -93,8 +102,10 @@ export AUTOSSH_POLL="${AUTOSSH_POLL:-30}"
93
102
# run/schedule the command #
94
103
# ###############################
95
104
if [ -n " ${SCHEDULE} " ]; then
105
+ log_with_timestamp " Scheduling command..."
96
106
echo " ${SCHEDULE} ${SCHEDULE_CMD} " > " ${HOME} /crontab"
97
107
exec supercronic " ${HOME} /crontab"
98
108
else
99
- exec " $@ "
109
+ log_with_timestamp " Running $1 ..."
110
+ exec " $@ " 2>&1 | awk ' { print strftime("[%Y-%m-%d %H:%M:%S%z]"), $0 }'
100
111
fi
0 commit comments