मैं जावा के साथ कुबेरनेट्स पॉड में एक MySQL डेटाबेस से डंप फ़ाइल बनाना चाहता हूं। मैंने कुबेरनेट्स-जावा-क्लाइंट लाइब्रेरी के साथ निम्नलिखित कोड की कोशिश की:

Process proc = exec.exec(ns, podName, new String[] { "mysqldump", "-u", "root", "-padmin", "wordpress", ">", "/root/wordpress.sql" },true);
proc.waitFor();

लेकिन यह पॉड के अंदर अनुरोधित निर्देशिका में डंप फ़ाइल नहीं बनाता है। मैंने Kubectl exec चलाने और डंप फ़ाइल बनाने का भी प्रयास किया:

Runtime run = Runtime.getRuntime();
Process pr;
pr=run.exec("kubectl exec "+podName+" -n"+" "+ns +" -- mysqldump -u root -padmin wordpress > /root/wordpress.sql");
pr.waitFor();
BufferedReader errinput = new BufferedReader(new InputStreamReader(pr.getErrorStream()));
String line;
   if ((line = errinput.readLine()) != null)
                System.out.println(line);

इस कोड का परिणाम मेरे होस्ट में /root/wordpress.zip में डंप फ़ाइल बनाना चाहिए न कि पॉड में लेकिन यह इसे भी नहीं बनाता है।

मुझे डंप फ़ाइल को पुनर्स्थापित करने के लिए भी ठीक यही समस्या है।

0
zahra.dgh 9 नवम्बर 2020, 12:43

1 उत्तर

सबसे बढ़िया उत्तर

मैंने अभी एक समाधान निकाला है, मैंने निम्नलिखित सामग्री के साथ कंटेनर के अंदर एक स्क्रिप्ट बनाई है:

mysqldump -u root -padmin wordpress > /root/wordpress.sql

तब मैंने इस स्क्रिप्ट पर अनुमति 777 सेट की:

chmod 777 /root/mysql.sh

तो मैं इस स्क्रिप्ट को अपने कोड के अंदर चलाता हूं:

Process proc2 = exec.exec(ns, podName , new String [] {"sh", "/root/mysql.sh"} , true);
proc2.waitFor();
0
zahra.dgh 9 नवम्बर 2020, 12:19